分布式之CAP理论
2022-10-17 本文已影响0人
牛奶言兼
CAP分别指的是C(Consistency,一致性)、A(Availability,可用性)、P(Partition tolerance,分区容错性)。
CAP理论指的是,在分布式系统的指标计算规则下,CAP三者无法同时达到100%,需要对某个指标降级处理,比如:CP+HA(一致性100% + 分区容错性100% + 高可用性99.999%)。
三者关系示意图
在分布式系统中,分区容错性P是绝大部分场景首要的考虑因素,剩下的两个指标中会有一个根据场景进行保留和降级处理,形成CP+HA或者AP+HC。
分布式系统中的C(Consistency,一致性)追求的是数据副本的一致性,不是数据变更过程中数据值的一致性,后者是数据库中事务ACID中的C(Consistency,一致性)。这里是对于新接触分布式系统相关最容易让人误导的。
可以参考文章《ACID和CAP的详尽比较》
关于CAP导出的一些内容有:
- 共识算法
- paxos
- raft: Raft Consensus Algorithm
- eraft
- 分布式数据一致性
- 主从复制
关于分布式系统,最重要的还是要理解一致性诉求,关于一致性,从数学原理上来说本质是排序问题,即如何将不同服务中的事件或者消息进行合理的排序,如此就涉及偏序和全序的概念。
偏序:集合的子集才具备某种关系
全序:集合自身及子集均具备某种关系
比如:复数域中的数值大小关系,它只对复数的部分子集如实数集成立,所以大小关系是复数的一个偏序关系;而对于实数域,不管是自身,还是子集有理数集,大小关系均成立,所以大小关系是实数域的全序关系。