Zookeeper学习之路——CAP/BASE

CAP

CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼,在分布式系统中最多只能满足其中的两项。

一致性

分布式系统下的一致性是指如果对节点A进行更新操作并且更新成功后,其他的节点上的副本数据也应该是节点A更新后的最新数据,如果客户端在访问其他节点读取到在节点A更新后更旧的值,那就是出现了数据不一致的情况。在更新完后就能够访问到最新的值,这样的一致性叫做强一致性或者叫做严格一致性。

可用性

可用性是指系统提供的服务必须一直处于可用的状态,对于用户的请求总是能够在有限的时间内返回结果。对于搜索引擎类的系统而言,搜索一个关键字,系统需要在0.3s内给出相应的结果。

分区容错性

分区容错性要求系统在遇到任何网络分区故障的时候,系统仍然需要保证对外提供满足一致性和可用性,除非是整个网络环境都发生故障。

CAP定理说明

放弃CAP定理 说明
放弃P 如果希望避免出现分区容错性问题,最简单的做法是把所有的数据都放在一个分布式节点上,这样的做法虽然不能百分之百保证系统不会出现问题,但是至少不会碰到网络分区带来的问题,需要注意的是,放弃P的同时也就放弃了系统的可扩展性。
放弃A 做法是系统一旦遇到网络分区或者其他故障时,那么受到影响的服务需要等待一定的时间,等待期间部分系统服务无法正常对外提供服务,既不可用。
放弃C 这里说的一致性是指数据的强一致性,而不是丢弃数据的一致性。抛弃强一致性,也就是客户端在访问时,可能会访问到数据的中间状态,但这不影响数据的最终一致性。

BASE

BASE是Basically Available(基本可用),Soft state(软状态),Eventually consistent(最终一致性)。

基本可用

基本可用是指系统在出现故障的时候,允许损失部分可用性,损失部分可用性,不代表系统是不可用的。

  • 相应时间上的损失:原本应该在1s中给出相应的,现在可以推迟到2-3s的时间给出相应。
  • 功能上的损失:例如在天猫双十一的时候,当天天猫会把后台的退货功能暂时关闭,会对一些页面做降级处理,以及一些在大促期间不需要的一些功能。

软状态

软状态就是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响到系统的整体可用性。

最终一致性

最终一致性强调的是系统中的所有的数据副本,经过一段时间的同步,最终会达到一个一致的状态。

最终一致性的五种变体

  • 因果一致性
  • 读已之所写
  • 回话一致性
  • 单调读一致性
  • 单调写一致性

猜你喜欢

转载自blog.csdn.net/u010871004/article/details/80399560