0%

CAP原则

文章字数:576,阅读全文大约需要2分钟

CAP原则是只一个分布式系统中,一致性Consistency、可用性Availability、分区容错性Partition tolerance,三个要素只能同时实现两点,不可能三者兼顾。

具体解释

  1. 一致性c: 在分布式系统中,所有的数据备份,在同一时刻是否相同的值。(节点一收到变更数据的请求之后马上通知其他节点,保证数据的统一。)
  2. 可用性A: 在集群中一部分节点故障后,集群整体是否还能相应客户端的读写请求。(只要有数据请求,就必须给回应。即使部分节点故障)
  3. 分区容错性P: 大多数分布式系统分布在多个子网中,每个子网就是一个区。区之间通信可能失败,应对这种情况的设计就是保证分区容错性。(p一般是无法避免的,所以剩下的ca无法同时做到)

ConsistencyAvailability的矛盾

因为通信失败的情况常有可能发生,所以分区容错性很重要。根据CAP原则,ConsistencyAvailability就只能选择其一了。
保证数据一致性则需要数据完全同步之后再开放读写,如果此时通信有问有,就无法保证可用性了,因为有部分节点必然被锁定。或者通信有问题,节点没有获取到最新的数据变更请求,从而达不到数据一致性。