分布式系统CAP定理
分布式系统协议只能在CAP这三者间有所折中。
-
Consistenct (强一致性)也称原子一致性/线性一致性
在任意时刻,更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致。-
强一致性
-
顺序一致性
- 任何一次读都能读到某个数据的最近一次写的数据。
- 系统的所有进程的顺序一致,而且是合理的。即不需要和全局时钟下的顺序一致,错的话一起错,对的话一起对。
-
弱一致性
-
系统中的某个数据被更新后,后续对该数据的读取操作可能得到更新后的值,也可能是更改前的值。
-
但即使过了“不一致时间窗口”这段时间后,后续对该数据的读取也不一定是最新的值。
-
所以说,可以理解为数据更新后,如果能容忍后续的访问只能访问到部分或者全部访问不到,则是弱一致性。
-
-
最终一致性
- 是弱一致性的特殊形式,存储系统保证在没有新的更新的条件下,最终所有的访问都是最后更新的值。
- 不保证在任意时刻任意节点上的同一份数据都是相同的,但是随着时间的迁移,不同节点上的同一份数据总是在向趋同的方向变化。
- 简单说,就是在一段时间后,节点间的数据会最终达到一致状态。
-
-
Availiablity(高可用性)
服务一直可用,而且是正常响应时间。
系统再出现异常时仍然可用提供服务。
通用衡量标准是宕机时间的比例。
-
Partition tolerance(分区容错性)
系统可以对网络分区这种异常情况进行容错处理。
服务治理组件对比
EureKa | Consul | Nacos | |
---|---|---|---|
一致性 | 弱一致性(AP) | 弱一致性(AP) | AP/CP |
性能 | 快 | 慢(RAFT协议Leader选举) | 快 |
访问协议 | HTTP | HTTP/DNS | HTTP/DNS/UDP |