您现在的位置是:首页 >学无止境 >微服务注册中心AP、CP的区别网站首页学无止境
微服务注册中心AP、CP的区别
要了解AP、CP的区别首先需要知道AP和CP是什么?
AP、CP是分布式理论中的概念:
分布式理论是关于如何设计和构建大规模计算机系统的一门学科,其目的在于探讨如何将计算机资源有效地分配到多个计算节点上,以实现更高效、可靠和可扩展的计算。
CAP主要是在分布式项目下的一个理论。包含了三项,一致性、可用性、分区容错性
-
一致性(Consistency)是指更新操作成功并返回客户端完成后,所有节点在同一时间的数据完全一致(强一致性),不能存在中间状态。
-
可用性(Availability) 是指系统提供的服务必须一直处于可用的状态,对于用户的每一个操作请求总是能够在有限的时间内返回结果。
-
分区容错性(Partition tolerance) 是指分布式系统在遇到任何网络分区故障时,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。
AP代表可以同时保证可用性、分区容错性
CP代表可以同时保证一致性、分区容错性
为什么分布式系统中无法同时保证一致性和可用性?
对于分布式系统而言,分区容错性是一个最基本的要求,因此基本上我们在设计分布式系统的时候只能从一致性(C)和可用性(A)之间进行取舍。
如果保证了一致性(C):对于节点N1和N2,当往N1里写数据时,N2上的操作必须被暂停,只有当N1同步数据到N2时才能对N2进行读写请求,在N2被暂停操作期间客户端提交的请求会收到失败或超时。显然,这与可用性是相悖的。
如果保证了可用性(A):那就不能暂停N2的读写操作,但同时N1在写数据的话,这就违背了一致性的要求。
主流注册中心对分布式理论实现区别:
Nacos:
Nacos是Alibaba的产品,支持AP和CP模型,Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;
Eureka:
Netflix提供的注册中心,支持AP模型
Consul:
HashiCorp开源的注册中心,支持CP模型
Zookeeper:
Apache开源的注册中心,支持CP模型
BASE理论
BASE是CAP理论中AP方案的延伸,核心思想是即使无法做到强一致性(StrongConsistency,CAP的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。它的思想包含三方面:
1、Basically Available(基本可用):
基本可用是指分布式系统在出现不可预知的故障的时候,允许损失部分可用性,但不等于系统不可用。
2、Soft state(软状态):
即是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
3、Eventually consistent(最终一致性):
强调系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。其本质是需要系统保证最终数据能够达到一致,而不需要实时保证系统数据的强一致性。