1. 数据一致性模型
如果数据读取、写入、更新的结果是可预测的,我们称它遵循数据一致性模型。
- 严格一致性(Strict Consistency)(强)
- 不论在哪个节点,看到的资源都是统一的结果。
- 顺序一致性(Sequential Consistency)(弱)
- 节点的数据变动和操作的顺序保持一致。
- 最终一致性(Eventual Consistency)(弱)
- 所有的数据副本最终都会变得一致。
注:强弱划分比较粗犷,但是容易理解,并发编程和分布式领域有更多的细分模型。
- 所有的数据副本最终都会变得一致。
2. BASE 理论
- BASE 是 Basically Avaliable(基本可用)、Soft state(软状态)和 Eventual consistency(最终一致)三个短语的缩写。
- 基本可用:可能是部分功能不可用或者响应时间延长。
- 软状态:不同系统/节点之间,数据存在过度状态。
- 最终一致:经过系统内部协调机制,最终所有节点保持一致(分布式系统中的一致并不一定指数据保持一样)。
- 最终一致性图示
- 允许其他节点在可以容忍的时间之内保持不一致,但是最终结果是一致的。