Skip to content

分布式系统主要内容与关键信息提取


一、分布式系统概述

核心概念

  • 分布式系统:多台计算机协同工作的网络化系统,具备容错性、可扩展性、可用性、性能和透明性等特征。
  • 集群系统:通过负载均衡提升并发处理能力,通常与负载均衡器配合使用。
  • 并行系统:多节点协同处理单任务,需对共享资源进行互斥访问。
  • 分布式对象:对象分布在不同节点,通过中间件实现透明访问(如代理和封装技术)。

设计目标

  • 共享资源、开放性、并发性、可扩展性、故障恢复。

主要分类

  • 集群系统、云计算系统、P2P系统。

关键术语

  • 服务注册与发现(如Zookeeper)、负载均衡(算法:轮询、加权轮询、一致性哈希)、数据分片、消息代理(如Broker或消息队列)、服务治理、故障域。

二、分布式系统理论

核心理论

  1. CAP定理:分布式系统无法同时满足一致性、可用性、分区容错性,需在一致性与可用性间权衡。
  2. BASE理论:基本可用、软状态、最终一致性,通过异步复制和数据修复实现高可用性。
  3. 分布式事务:需协调机制确保ACID特性,常见算法包括2PC(两阶段提交)、3PC(三阶段提交)。
  4. 一致性算法
    • Paxos:通过Prepare/Accept多轮交互达成共识,容忍故障。
    • Raft:基于主从模型,实现快速Leader选举和心跳检测,流程更易理解。
    • ZAB:融合Paxos与原子广播,通过Leader选举实现一致性。
    • Gossip协议:随机节点间通信传播信息,实现最终一致性。

关键术语

  • 拜占庭容错(解决节点故障导致的共识问题)、Vector Clock(检测事件顺序)、分区容错性(CAP定理的核心约束)。

三、分布式系统架构

主要架构类型

  1. 客户端-服务器架构:分层通信模型。
  2. 主从架构:依赖Leader节点协调操作。
  3. 对等架构(P2P):节点平等通信,无中心控制。
  4. 微服务架构:通过服务治理实现模块化管理。

技术模式

  • Serverless:无服务器管理的架构,侧重事件驱动。
  • Service Mesh:微服务间通信的基础设施层,支持服务发现、限流、追踪等。

关键组件与机制

  • 服务发现:服务注册与注销,支持动态负载均衡(如Zookeeper、Eureka)。
  • 软负载均衡:基于软件算法(如轮询)分发流量,部署灵活(如Nginx、HAProxy)。
  • 服务治理:涵盖注册、发现、调用链监控、访问控制等功能(如Dubbo、Zookeeper)。
  • 配置管理:集中管理动态配置,支持热更新(如Apollo、Nacos)。
  • 服务容错:通过限流、熔断、隔离等机制保障系统稳定性(如Hystrix)。

四、分布式系统组件

核心组件

  1. 缓存:减少数据库访问,提升查询性能(如Redis、Memcached)。
  2. 消息队列:实现异步解耦,支持削峰填谷(如Kafka、RabbitMQ)。
  3. 负载均衡:分发用户请求,提高可靠性(算法:轮询、加权轮询、源地址哈希)。
  4. 反向代理:统一入口,处理外网攻击和静态内容缓存(如Nginx)。
  5. 分布式数据库:水平扩展数据存储,支持分库分表、读写分离(如MySQL、MongoDB)。
  6. 分布式文件系统:统一文件访问接口,适合大数据存储(如HDFS)。
  7. 分布式锁:通过协议实现资源互斥访问(如Zookeeper、Redis锁)。
  8. 注册中心:服务信息存储与管理(如Zookeeper、Eureka)。
  9. 配置中心:集中管理配置信息,动态生效(如Apollo、Nacos)。

关键术语

  • 数据分片、消息代理、服务注册与发现、反向代理、分布式锁、注册中心、配置中心。

五、分布式系统技术

关键技术

  1. RPC:远程过程调用,抽象底层通信(协议:Socket、HTTP、gRPC)。
  2. 数据一致性
    • 乐观锁:允许临时不一致,最终通过冲突检测解决。
    • 悲观锁:强一致性,通过锁机制避免冲突。
  3. 分布式缓存模式
    • Cache Aside:缓存失效后查询数据库。
    • Sharding:数据分片提升存储与读写能力。
    • CDN:内容分发网络,加速静态资源访问。
  4. 分布式事务
    • 2PC:投票阶段(准备)与提交阶段,需协调者节点。
    • 3PC:增加预提交阶段,避免协调者故障导致的阻塞。
    • TCC/SAGA:补偿事务模型,适用于复杂业务场景。

关键术语

  • 服务网格(Service Mesh)、服务编排、分布式追踪(如Zipkin、Jaeger)、数据序列化(如JSON、Protobuf)、API网关(如Kong、Tyk)、限流熔断。

术语校正与补充

  1. CAP定理:需明确“分区容错性”是分布式系统的基础要求,因此需放弃强一致性(如CAP定理的约束)。
  2. BASE理论:强调“最终一致性”而非强一致性,允许数据中间状态。
  3. Paxos与Raft:Paxos更注重算法复杂性与容错性,Raft则以易用性和快速选举著称。
  4. Gossip协议:通过随机传播实现最终一致性,适合大规模节点网络。
  5. 服务降级:如Netflix Hystrix通过关闭非关键功能维持核心服务可用性。
  6. Vector Clock:用于检测分布式事件的因果顺序,避免时钟同步问题。
  7. 故障域:划分可能故障的子系统集合,减少单点故障影响范围。

技术栈总结

  • 基础技术:计算机网络、操作系统、分布式算法、数学建模。
  • 应用技术:数据库扩展、网络通信、多线程、中间件、虚拟化技术。

关键信息完整性验证

  • 无遗漏:覆盖了分布式系统的核心特征、理论模型、架构类型、组件功能及技术实现。
  • 专业性保留:术语如CAP定理、Paxos、Raft、Vector Clock等均保留原解释。
  • 技术细节:明确区分了集群系统与并行系统的差异,负载均衡算法及分布式锁的实现方式。

更新于:

note