CAP/BASE 理论
CAP
概念
- 一致性
当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。 - 可用性
每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。 - 分区容错性(必需保证)
分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务
三选二
- CA
放弃P的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是违背分布式系统设计的初衷的。 - CP
每个请求都需要在Server之间强一致,而P(分区)会导致同步时间无限延长(也就是等待数据同步完才能正常访问服务),如此CP也是可以保证的,zookeeper - AP
要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。现在众多的NoSQL都属于此类,如redis,mongdb等。
BASE
- 最终一致性
data replications 经过一段时间达到一致性。 - 基本可用
在分布式系统出现故障,允许损失部分可用性(服务降级、页面降级)。 - 软状态
允许分布式系统出现中间状态。而且中间状态不影响系统的可用性。
允许系统服务的副本间在数据同步时存在延时
CAP/BASE 理论
https://www.xinyublog.com/concept/cap/