第九章 - 一致性与共识
💡
原文约2600字/词,阅读约需10分钟。
📝
内容提要
文章讨论了分布式系统中的一致性和共识问题。为了实现容错系统,需要使用通用抽象和一致性保证。线性化是一种强一致性模型,确保系统像只有一个数据副本。CAP定理指出在网络分区时必须在一致性和可用性之间选择。文章还介绍了两阶段提交协议用于实现分布式事务的原子性,以及共识算法如Raft和Zookeeper的应用。
🎯
关键要点
- 分布式系统中的一致性和共识问题是实现容错系统的关键。
- 线性化是一种强一致性模型,确保系统表现得像只有一个数据副本。
- CAP定理指出在网络分区时必须在一致性和可用性之间进行选择。
- 两阶段提交协议用于实现分布式事务的原子性。
- 线性化与序列化的区别在于,线性化关注操作的实时性,而序列化关注事务的隔离性。
- 线性化适用于分布式锁和唯一性约束等场景。
- 实现线性化的系统可以是单领导者或多领导者,但多领导者的实现复杂度更高。
- CAP定理强调在网络分区时,系统只能选择一致性或可用性,不能同时满足。
- 广播的总顺序是确保消息在所有节点中以相同顺序交付的协议。
- 共识算法确保多个节点在某个值上达成一致,常见的算法包括Raft和Zookeeper。
- 两阶段提交协议确保分布式事务的原子性,但会影响性能。
- XA事务是支持异构系统中分布式事务的标准。
- 共识问题是分布式系统中的核心问题,涉及到多个节点的决策一致性。
➡️