分布式系统一致性协议
分布式系统中,多个节点需要达成一致以保持数据一致性。本文介绍CAP理论、Raft、Paxos等核心概念。
一、CAP理论
1. CAP三个特性
- 一致性:所有节点同时看到相同的数据
- 可用性:每次请求都能得到响应
- 分区容错性:系统在网络分区时仍能运行
2. CAP权衡
在分布式系统中,P是必须的,因此只能在CA和CP之间选择:
- CA:牺牲分区容错(单机系统)
- CP:牺牲可用性(保证一致性)
- AP:牺牲一致性(保证可用性)
3. BASE理论
- Basically Available:基本可用
- Soft state:软状态
- Eventually consistent:最终一致性
二、Raft协议
1. Raft角色
- Leader:处理所有客户端请求
- Follower:接收Leader的日志复制
- Candidate:选举期间的临时角色
2. 领导选举
3. 日志复制
三、Paxos协议
1. Paxos角色
- Proposer:提出提案
- Acceptor:接受提案
- Learner:学习已选定的值
2. Paxos两阶段
阶段1:Prepare
阶段2:Accept
3. Paxos实现
四、分布式事务
1. 两阶段提交(2PC)
2. 三阶段提交(3PC)
增加CanCommit阶段,减少阻塞时间。
3. TCC(Try-Confirm-Cancel)
五、最终一致性
1. Gossip协议
2. Vector Clock
六、分布式锁
1. Redis分布式锁
2. ZooKeeper分布式锁
分布式系统一致性是复杂但必须掌握的主题,理解这些协议能设计更可靠的分布式系统。