您现在的位置是:主页 > 数据库技术 > 数据库技术

CAP理论有哪些特性

IDCBT2022-01-07服务器技术人已围观

简介这篇文章主要讲解了“CAP理论有哪些特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CAP理论有哪些特性”吧! CAP理论作

这篇文章主要讲解了“CAP理论有哪些特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CAP理论有哪些特性”吧!

CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中:

    一致性(Consistency)

    可用性(Availability)

    分区容错性(Partition tolerance)

    最多满足其中的两个特性。也就是下图所描述的。分布式系统要么满足CA,要么CP,要么AP。无法同时满足CAP。

            

    I. 什么是 一致性、可用性和分区容错性

    分区容错性:指的分布式系统中的某个节点或者网络分区出现了故障的时候,整个系统仍然能对外提供满足一致性和可用性的服务。也就是说部分故障不影响整体使用。

    事实上我们在设计分布式系统是都会考虑到bug,硬件,网络等各种原因造成的故障,所以即使部分节点或者网络出现故障,我们要求整个系统还是要继续使用的

    (不继续使用,相当于只有一个分区,那么也就没有后续的一致性和可用性了)

    可用性: 一直可以正常的做读写操作。简单而言就是客户端一直可以正常访问并得到系统的正常响应。用户角度来看就是不会出现系统操作失败或者访问超时等问题。

    一致性:在分布式系统完成某写操作后任何读操作,都应该获取到该写操作写入的那个最新的值。相当于要求分布式系统中的各节点时时刻刻保持数据的一致性。

    II. 该怎么理解

    如果我们事先保证了分区容错性,也意味着若某个节点故障了,用户还是可以继续访问。这时用户在访问过程中就会出现一致性和可用性不能同时满足的情况,参考下图:

    如图假设分布式系统有G1,G2两个节点,初始值都是v0。现在有一个client向系统写入了值v1,这里假设直接写的是节点G1。写完之后client再去读取这个值,这时读到了G2节点,

    由于G2节点与G1节点失去连接,这时G1节点上的数据还未同步到G2节点,因此客户端读取到的是修改之前的值v0。这就出现了不满足一致性的情况了。相当于满足了可用性,失去了一致性。

    类似的,如果系统保证了强的一致性,那么在client 写完G1节点后, 而G1向G2节点同步数据出现了问题,这时如果client再去读取G2节点的数据时,client就会一直处于等待状态,因为系统内各节点

    数据为同步上,需要等同步上才能使用。这就相当于满足了一致性,而失去了可用性。

    考虑多个客户端访问时,一致性和可用性还可以这么理解:假如client1 向G1 修改某个值的时候, 写操作还未完成,client2就发起来对该值的读操作,读的是G2节点,这时如果要满足一致性,

    标签:

    很赞哦! ()

本栏推荐