读构建可扩展分布式系统:方法与实践10最终一致性

2024-09-20  本文已影响0人  躺柒
读构建可扩展分布式系统:方法与实践10最终一致性.png

1. 最终一致性

1.1. 在一些应用领域,通常谈论的是银行和金融行业,最终一致性根本不合适

1.2. 事实上,最终一致性在银行业已经使用了很多年

1.3. 在过去的好日子里,系统的所有数据项都有一个单一的真实来源,即数据库,不存在副本一致性的问题,因为根本没有副本

1.4. 为了保证每个节点的数据高可用,还需要对每个节点的内容进行复制,以消除单点故障

1.5. 不一致窗口

1.6. 读写一致性

1.7. 最终一致数据库广泛应用于大型系统中

1.8. 最终一致数据库已经成为可扩展分布式系统领域的一个既定部分

2. 可调节一致性

2.1. 许多最终一致的数据库允许你通过配置选项和API参数来定制数据库的最终一致行为,可以根据用例能容忍的副本最终一致性级别来权衡读写操作的性能

2.2. 可调节一致性基于要完成数据库请求必须访问的特定副本数

3. 读取和写入仲裁

3.1. 法定数仲裁是多数副本,即(N/2)+1

3.2. 对于三个副本,法定数仲裁意味着写入必须在两个副本上成功,而读取必须访问两个副本

3.3. 仲裁的直观表现是,始终在大多数副本中读取和写入,读取请求将看到数据库对象最新版本的值

3.4. 如果法定数的节点不可用,写入和读取将失败

3.5. 宽松仲裁(sloppy quorum)

4. 副本修复

4.1. 在分布式、自我复制数据库中,你希望每个副本都是一致的

4.2. 系统会随着时间的推移趋向于熵(无序)

4.3. 主动修复

4.4. 被动修复

5. 冲突处理

5.1. 在无领导系统中,写入操作可以由任何副本处理

5.2. 最后写入者胜出

5.3. 版本向量

上一篇 下一篇

猜你喜欢

热点阅读