1. 数据一致性模型


如果数据读取、写入、更新的结果是可预测的,我们称它遵循数据一致性模型。

  • 严格一致性(Strict Consistency)(强)
    • 不论在哪个节点,看到的资源都是统一的结果。
  • 顺序一致性(Sequential Consistency)(弱)
    • 节点的数据变动和操作的顺序保持一致。
  • 最终一致性(Eventual Consistency)(弱)
    • 所有的数据副本最终都会变得一致。

      注:强弱划分比较粗犷,但是容易理解,并发编程和分布式领域有更多的细分模型。

2. BASE 理论


  • BASE 是 Basically Avaliable(基本可用)、Soft state(软状态)和 Eventual consistency(最终一致)三个短语的缩写。
    • 基本可用:可能是部分功能不可用或者响应时间延长。
    • 软状态:不同系统/节点之间,数据存在过度状态。
    • 最终一致:经过系统内部协调机制,最终所有节点保持一致(分布式系统中的一致并不一定指数据保持一样)。
  • 最终一致性图示

image-20200708102724161.png

  • 允许其他节点在可以容忍的时间之内保持不一致,但是最终结果是一致的。