要理解强一致性和最终一致性,首先需要明确它们的核心目标:在分布式系统中(多节点存储数据),如何保证不同节点对“数据状态”的认知一致。两者的本质区别在于数据达成一致的“时效性”和“严格程度”,以下从定义、核心特征、实现逻辑和典型场景四个维度展开解析:
一、强一致性(Strong Consistency)
强一致性是最严格的一致性模型,要求分布式系统中所有节点,在任意时刻对数据的“视图”完全相同——即一旦某个写操作完成并返回成功,后续所有节点的读操作都必须能获取到这个最新的写结果,不存在“看到旧数据”的情况。
可以类比为:“全校学生同时看同一个黑板,老师写下一个公式后,所有学生立刻看到的都是最新公式,没有任何人还能看到之前的内容。”
1. 核心特征
- 实时性:写操作完成后,数据一致性立即生效,无延迟。
- 唯一性:同一时间,所有节点对同一数据的取值唯一(不存在“节点A看到1,节点B看到2”的情况)。
- 可靠性:只要写操作返回成功,就确保数据在“多数节点”上持久化,即使部分节点故障,也不会丢失最新数据。
2. 实现核心逻辑
强一致性的实现依赖于**“全局协调”和“多数确认”**,典型代表是 Raft 算法(etcd 采用),核心步骤如下:
- 选主:集群中选举出唯一的“Leader”节点,所有写请求必须先发送给 Leader(避免多节点同时写导致冲突)。
- 日志同步:Leader 将写操作封装为“日志条目”,持久化到本地后,同步给所有“Follower”节点。
- 多数确认</
1470



被折叠的 条评论
为什么被折叠?



