1、介绍
CAP理论又叫CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
这里的CAP理论的前提是分布式系统环境,不可在单体应用讨论次理论。
2、名词概念
可用性(A):分布式系统中,部分节点故障,系统整体任可对外提供读写服务。
一致性(C):分布式系统中,节点的备份数据与主数据,在某一时刻是否保持相同。
分区容错性(P):分布式系统中,节点间本来是相通的,可能因为某些故障造成某些节点不互通,整个系统就被分成了不同的区域。部分节点能访问数据,部分节点不能访问数据,数据就分散在了不同的区域,这是分区无法容忍的。
3、详解
如上图所示,当数据仅保存在一个节点时,分区出现后,不互通的节点就无法进行正常的数据读写,这时系统分区容错性就会降低。
提高分区容错性的办法就是提高数据节点个数,节点间的数据进行复制同步,当分区现象出现后,数据节点刚好分布在不同的区域里面,分区容错性就提高了。
但是数据节点间数据复制,就会带来数据一致性问题,可能在某一个时间点每个节点对外提供服务响应的数据不一致。
解决一致性问题,就要在每次写数据操作时,等待数据节点间数据复制结束后再对外提供服务,等待时间越长,系统可用性就越低。
总结:数据节点个数越多,分区容错性就越高,数据节点间数据一致性就越低,为了保证一致性,数据节点间复制数据时间就越长,系统可用性就会降低。