Java - CAP定理

CAP 定理指的是在一个分布式系统中,一致性 Consistency 、可用性 Availability 、分区容
错性 Partition tolerance ,三者不可兼得。
一致性( C ):分布式系统中多个主机之间是否能够保持数据一致的特性。即,当系统数
据发生更新操作后,各个主机中的数据仍然处于一致的状态。
可用性( A ):系统提供的服务必须一直处于可用的状态,即对于用户的每一个请求,系
统总是可以在有限的时间内对用户做出响应。
分区容错性( P ):分布式系统在遇到任何网络分区故障时,仍能够保证对外提供满足一
致性和可用性的服务。
CAP 定理的内容是:对于分布式系统,网络环境相对是不可控的,出现网络分区是不可
避免的,因此系统必须具备分区容错性。但系统不能同时保证一致性与可用性。即要么 CP
要么 AP
BASE 理论
BASE Basically Available (基本可用)、 Soft state (软状态)和 Eventually consistent (最
终一致性)三个短语的简写, BASE 是对 CAP 中一致性和可用性权衡的结果,其来源于对大
规模互联网系统分布式实践的结论,是基于 CAP 定理逐步演化而来的。
BASE 理论的核心思想是:即使无法做到强一致性,但每个系统都可以根据自身的业务
特点,采用适当的方式来使系统达到最终一致性。
1 ) 基本可用
基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性。
2 ) 软状态
软状态,是指允许系统数据存在的中间状态,并认为该中间状态的存在不会影响系统的
整体可用性,即允许系统主机间进行数据同步的过程存在一定延时。软状态,其实就是一种
灰度状态,过渡状态。
3 ) 最终一致性
最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到
一个一致的状态。因此,最终一致性的本质是需要系统保证最终数据能够达到一致,而不需
要保证系统数据的实时一致性。
Zookeeper CP
Zookeeper 遵循的是 CP 模式,即保证了一致性,但牺牲了可用性。
Leader 节点中的数据发生了变化后,在 Follower 还没有同步完成之前,整个 Zookeeper
集群是不对外提供服务的。如果此时有客户端来访问数据,则客户端会因访问超时而发生重
试。不过,由于 Leader 的选举非常快,所以这种重试对于用户来说几乎是感知不到的。所
以说, Zookeeper 保证了一致性,但牺牲了可用性。
Consul CP
Consul 遵循的是 CP 模式,即保证了一致性,但牺牲了可用性。
Redis CAP
Redis 遵循的是 AP 模式,即保证了可用性,但牺牲了一致性。
Eureka CAP
Eureka 遵循的是 AP 模式,即保证了可用性,但牺牲了一致性。
Nacos CAP
Nacos 在做注册中心时,默认是 AP 的。但其也支持 CP 模式,但需要用户提交请求进行
转换。

你可能感兴趣的:(Java,java,开发语言)