🌐 分布式系统
掌握分布式系统的核心理论与架构实践
🔴 考试重点
CAP定理、BASE理论、分布式一致性、微服务架构是考试的核心内容!
分布式系统概述
分布式系统定义
分布式系统是由多个独立的计算机组成,通过网络连接,协同工作以完成共同任务的系统。对用户而言,整个系统就像一台计算机一样。
核心特征
- • 分布性:组件分布在网络中的不同节点
- • 并发性:多个组件同时执行
- • 缺乏全局时钟:难以确定事件的全局顺序
- • 故障独立性:部分组件故障不影响整体
分布式系统挑战
网络分区
网络故障导致节点间无法通信
部分故障
部分组件故障,难以检测和处理
异步通信
消息传递延迟不确定
并发控制
多个节点同时访问共享资源
CAP定理
CAP定理核心内容
在分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition Tolerance)三者不可兼得,最多只能同时满足其中两个。
一致性 (C)
所有节点在同一时间看到相同的数据
- • 强一致性
- • 弱一致性
- • 最终一致性
可用性 (A)
系统在任何时候都能响应用户请求
- • 服务可访问
- • 响应时间合理
- • 不出现系统错误
分区容错性 (P)
系统能够容忍网络分区故障
- • 网络故障容忍
- • 节点间通信中断
- • 系统继续运行
CA系统
选择一致性和可用性,放弃分区容错性
典型系统
- • 传统关系数据库
- • 单机系统
- • 集群数据库
CP系统
选择一致性和分区容错性,放弃可用性
典型系统
- • MongoDB
- • HBase
- • Redis Cluster
AP系统
选择可用性和分区容错性,放弃一致性
典型系统
- • Cassandra
- • DynamoDB
- • CouchDB
BASE理论
BASE理论核心
BASE理论是对CAP定理的延伸,提供了一种在分布式系统中实现高可用性的方法
基本可用 (BA)
Basically Available
- • 系统基本可用
- • 允许损失部分可用性
- • 响应时间可能增加
- • 功能可能降级
软状态 (S)
Soft State
- • 允许系统中的数据存在中间状态
- • 中间状态不影响系统可用性
- • 允许不同节点数据副本同步存在延时
最终一致性 (E)
Eventually Consistent
- • 系统中所有数据副本
- • 在一段时间后
- • 最终能够达到一致的状态
一致性模型
强一致性 (Strong Consistency)
特征
- • 任何时刻,所有节点看到的数据都是一致的
- • 写操作完成后,后续读操作必须能读到该写操作的结果
- • 系统中的所有节点在同一时间具有同样的数据
实现方式
- • 同步复制
- • 分布式锁
- • 两阶段提交
- • Paxos算法
- • Raft算法
- • 共识算法
弱一致性 (Weak Consistency)
特征
- • 系统不保证何时所有节点的数据一致
- • 尽力而为的一致性保证
- • 应用程序需要处理不一致的情况
应用场景
- • 实时系统(如VoIP、在线游戏)
- • 对一致性要求不高的应用
- • 需要高性能的场景
最终一致性 (Eventual Consistency)
核心思想
系统保证在没有新的更新操作的情况下,经过一段时间后,所有节点的数据将最终达到一致状态。
变体
因果一致性 (Causal Consistency)
定义
如果操作A在逻辑上先于操作B(存在因果关系),那么在所有进程中,操作A都应该在操作B之前被观察到。
实现机制
- • 向量时钟 (Vector Clock)
- • Lamport时间戳
- • 因果关系跟踪
- • 依赖关系管理
共识算法
Raft算法
核心概念
算法步骤
- Leader选举
- 日志复制
- 安全性保证
Paxos算法
角色定义
两阶段协议
阶段1:Prepare阶段
阶段2:Accept阶段