概述
CAP 原则又称 CAP 定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则表明,这三个要素最多只能同时实现两点,不可能三者兼顾。
什么是分区?
一个分布式系统里面,节点组成的网络在正常状态下应该是连通的,也就是所有节点出于同一分区中。然而软件、硬件或者网络等故障不可避免,使得分布式系统中的节点之间不连通了,整个网络就分成了几块区域。当系统数据无法在不同分区间传输时,系统就是不可用的,这样的系统就是分区不容忍的系统。
通过增加数据副本的方式可以提高分区容忍性,也就是将同一数据的不同副本存储到分布式系统的不同存储节点中。然而,同一数据拥有多个副本后,副本之间数据在特定阶段、特定时刻,会出现某种程度的数据不一致的问题。
因此,三要素之间有着如上图所示的难以调和的矛盾,鱼与熊掌不可兼得。
另外,在分布式系统中,分区容忍性是必须要具备的特性,是不可放弃的,分布式系统中,要么选择 CP,要么选择 AP,没有 CA 这种选择。
举个简单的例子,在分布式系统中有三个节点 A、B、C,它们都保存着同一数据的不同副本,假设该系统同时满足 C(一致性)、A(可用性),当故障发生时,系统被分成了两个区 {A、B} 和 {C},这种情况下,C 接收到一条更改数据的请求,那么有两种可能的操作:
- 执行更新,那么除非系统从故障中恢复,否则 A,B 无法获悉本次更新;
- 拒绝更新;
总之,要么选择一致性,要么选择可用性,无法同时满足。
最后
以上就是顺心口红为你收集整理的一张图解释 CAP 理论中 C、A、P 三者间的关系的全部内容,希望文章能够帮你解决一张图解释 CAP 理论中 C、A、P 三者间的关系所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复