分布式计算与系统架构核心要点解析

1、什么是分布式计算?

分布式计算

分布式计算是构建大型系统的技术,它将工作分配到多台机器上。与传统计算系统(由单台计算机运行提供服务的软件)和客户端-服务器计算(多台机器远程访问集中式服务)不同,分布式计算通常有数百或数千台机器共同协作来提供大型服务。

2、描述分布式计算中的三种主要组合模式。

分布式计算中的三种主要组合模式

  1. 带有多个后端副本的负载均衡器
    - 请求发送到负载均衡器服务器
    - 负载均衡器为每个请求选择一个后端并转发请求
    - 响应返回给负载均衡器后再转发给原始请求者
    - 后端被称为副本,因为它们是彼此的克隆或复制,发送到任何副本的请求应产生相同的响应
    - 负载均衡器需知晓哪些后端正常并能接受请求
    - 会每秒多次发送健康检查查询
    - 若检查失败则停止向该后端发送流量
    - 选择后端的方法可简单可复杂,简单方法如轮询

  2. 带有多个后端的服务器

  3. 服务器树

3、有时主服务器不直接回复答案,而是回复答案所在的位置。这种方法有什么好处?

这样做可以避免在接收和中转大量数据时主服务器迅速过载,使主服务器无需在大数据传输中充当中间人。

4、解释CAP原则。

以下是将给定文本内容调整为Markdown格式的结果:


CAP 代表一致性(Consistency)、可用性(Availability)和分区容错性(Partition resistance)。

CAP原则指出,不可能构建一个能同时保证一致性、可用性和分区容错性的分布式系统,只能实现其中的一个或两个特性,无法同时实现全部三个。

例如:

  • 传统关系型数据库如Oracle、MySQL和PostgreSQL是具备一致性和可用性(CA)的;
  • 而像Hbase等较新的存储系统则有所不同。

5、当一个系统是松耦合时意味着什么?这些系统的优势是什么?

松耦合

松耦合意味着系统中的每个组件体现其提供服务的抽象,内部可以被替换或改进而不改变抽象,各组件不知道架构中其他系统的内部工作方式。

优势
  • 方便系统随时间演进 :服务的依赖无需改变就能从新特性中受益;
  • 便于改进甚至替换服务 :只需新服务提供相同抽象;
  • 确保兼容性和质量 :在部署新系统时,可以通过与旧系统并行运行、比较结果来实现;
  • 独立的安全和故障域 :各组件有独立的安全和故障域,维护更轻松。

6、请举例说明你所接触过的松散耦合和紧密耦合系统。是什么因素使它们呈现出松散或紧密耦合的特性?

## 松散耦合系统示例

- 分布式系统中各组件是松散耦合的:
  - 每个组件体现其提供服务的抽象。
  - 内部可替换或改进而不改变抽象。
  - 依赖该服务的部分无需更改就能从新特性中受益。

- 应用架构中使用消息总线的系统也是松散耦合的:
  - 各部门可通过订阅“用户更新”频道获取变更信息。
  - 各部门在自己的角色账户上运行系统,有独立的安全和故障域。
  - 新部门加入不影响其他部门。

## 紧密耦合系统示例

- 应用架构的旧版本系统:
  - 各部门处理用户变更请求的插件在同一角色账户下运行。
  - 一个部门插件有 bug 会导致整个系统崩溃。

## 对比总结

- **松散耦合系统**:
  - 组件抽象程度高。
  - 各部分独立性强。
  - 不了解其他系统内部工作。

- **紧密耦合系统**:
  - 各部分关联紧密。
  - 一个部分的变化可能影响其他部分。

7、我们如何估算系统处理请求(如检索电子邮件消息)的速度?

  • 可以选择一些常见事务并将其分解为更小的步骤,然后估算每个步骤所需的时间。
  • 例如检索电子邮件消息:
    • 请求来自可能在另一大陆的网络浏览器。
    • 需对请求进行身份验证。
    • 查询数据库索引以确定消息文本位置。
    • 检索消息文本。
    • 最后格式化响应并传输回用户。
  • 同时,要考虑无法控制的因素:
    • 如网络传输时间。
    • 与相关团队沟通获取身份验证等操作的建议预算时间。
    • 了解操作系统内部工作原理以估算磁盘操作时间。
    • 还可考虑将索引存于内存等优化方式来重新估算时间。

8、为什么为运维进行设计如此重要?

系统从一开始就融入运维功能会更易于维护。考虑服务的整个生命周期,构建服务功能仅占一小部分时间,大部分时间用于运维服务。

传统上软件的运维功能优先级较低,而现在为运维设计能确保正常运维功能良好执行,比如:

  • 定期维护
  • 更新
  • 监控

提供高可用服务的最佳策略是在软件中构建增强运维和自动化运维任务能力的功能,好的运维设计让运维更轻松,优秀的运维设计可消除部分运维职责,将运维人员的工作从执行重复任务转变为构建、维护和改进自动化处理任务的能力。

9、自动化配置通常是如何实现支持的?

自动化配置的支持方式

自动化配置通常通过以下方式支持:

  • 配置采用具有明确定义格式的文本文件形式,自动化系统可轻松生成该文件。
  • 文本文件易于解析、审计、存档,还能存储在源代码库中,并使用标准文本比较工具(如 UNIX diff )进行分析。

对于运行中动态更新配置的系统:

  • 自动化需通过 API 或读写配置文件来读取和更新
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值