ZooKeeper 6:分布式系统及相关理论

prev: ZooKeeper 5:集群模式

分布式系统

分布式计算机系统(Distributed Computer System),是指由多台分散的计算机,经互连网络的联接而形成的系统,系统的处理和控制功能分布在各个计算机上。分布式计算机系统又简称为分布式系统。

换个方式说,在一组物理上不相连的机器上提供服务,但是对于用户来说就像一台机器在工作一样,就是一个分布式系统:

  • 将硬件或软件组件(服务)分布在不同的网络计算机上
  • 通过消息传递进行通信和协调
    分布式系统的好处在于,方便横向扩展。例如传统的关系型数据库如MySQL,就比较难进行横向扩展,如果想提升数据库的能力,就只能提升机器的性能,如用更好的CPU更大的内存速度更快的辅存等。但是这种纵向扩展能力是有上限的,即使用最好的机器,也总有一天无法满足生产需要。横向扩展是通过增加机器数量来提供更好的系统性能,它的成本更小,且更具有弹性,理论上可以支撑无限大的生产需求。
    也就是说,这一组机器和服务,对外需要具有完全相同的状态,这就需要对分布在各地的服务通过一定的机制进行管理。

典型问题

  1. 通信异常
    分布式系统依赖通信进行协调,如果通信故障则无法进行一切操作
  2. 网络分区(脑裂)
    系统分裂为两个甚至多个局部小集群(分区);各分区独立运行,同时提供服务,从而导致混乱。例如上一节中提到的脑裂问题:某服务6台机器对外提供服务,结果由于机房通信故障,选出来了俩主,各自提供服务
  3. 节点故障
    任何机器可能随时宕机或僵死
  4. 三态
    成功、失败和超时

CAP定理

什么是C、A、P

  1. C(Consistency,一致性)

    含义:同一时刻,数据在不同节点的多个副本是否具有完全相同的值
    类型:

    • 强一致性:数据更新完成后,同一时刻,不同的读操作都能获得最新的值
    • 弱一致性:数据更新完成后,同一时刻,不同的读操作不一定都能获得最
      新的值,也无法保证多长时间之后可以获得最新的值
  2. A(Availability,可用性)
    含义:对于每一次请求,系统是否都能在有限(指定)的时间内做出响应

  3. P(Partition Tolerance,分区容错性,最重要)
    含义:当发生网络分区时,系统仍能对外提供满足一致性C和可用性A的服务

CAP定理内容

在这里插入图片描述
图源:架构设计之「 CAP 定理 」
表述:分布式系统在同一时间片段内,不可能同时满足一致性C(此处指强一致性)、可用性A和分区容错性P,最多只能满足其中的两项
注意:“满足”意味着100%,C满足强一致性,A 满足绝对可用性。
举例:

  • CA系统(不满足P):满足绝对一致性和绝对的可用性,任何时候来的事务都能得到解决和处理,但是无法扩展,这也就违背了分布式系统的设计初衷
  • CP系统(不满足A):满足分区容错性和绝对一致性,所有服务器之间是强一致的,但是分区会导致服务时间无限延长,等数据一致之后再提供服务
  • AP系统(不满足C):满足分区容错性和绝对可用性,每个节点使用自己本地的数据提供服务,但是可能会导致全局数据的不一致

对分布式系统而言,网络分区无法避免,满足P是前提条件,所以不可能选CA架构,只能选择CP或AP架构。

举例:发生网络分区时,某个节点正在进行写操作:
如果为了保证C,必须禁止其他节点的读写操作,那就与A冲突了;
如果为了保证A,其他节点正常读写,那就与C冲突了;
CAP是一种比较脱离实际的理想化、理论化的内容。

BASE理论

什么是BASE

  1. BA(Basically Availability,基本可用性)
    当系统发生故障时,在确保核心功能和指标有效的提前下,允许损失部分可用性,包括响应时间上的损失、非核心功能上的损失等.
  2. S(Soft State,软状态)
    允许数据存在中间状态(暂时未更新),且该状态不会影响整体可用性
    允许不同节点上的数据副本的同步过程存在一定延时
  3. EC(Eventually Consistency,最终一致性)
    分布在不同节点上的数据副本,在经过一定时间的同步后,最终达到一致状态。例如:Zookeeper、HDFS QJM写事务的过半策略。
    可以理解为弱一致性的升级版,强一致的妥协版。

BASE理论内容

表述:分布式系统在满足分区容错性P的同时,允许数据软状态S的存在,并实现基本可用性BA和最终一致性EC。
理解:在满足P的前提下,对CAP中的强一致性A和绝对可用性C进行适度妥协。通过容忍部分数据的暂时不一致(软状态),即牺牲数据的强一致性(确保最终一致性),以确保系统的核心功能和指标有效(基本可用)。

ZooKeeper的基本特性

回到ZooKeeper,分布式的相关理论在ZooKeeper上的基本特性是:

  • 最终一致性(最重要的功能,实现BASE理论)
  • 有限实时性(不能保证拿到最新数据)
  • 原子性(集群所有服务器都成功执行了某一事务,或者都没有)
  • 顺序性(事务严格按照顺序应用到ZooKeeper)
  • 可靠性(服务器执行了某一事务,引起的数据改变要保留)
  • 单一视图(无论连接哪个服务器,看到的数据模型都是一致的)

在 ZooKeeper 中,采用的是最终一致性,即经过一段时间后,ZooKeeper 集群服务器上的数据最终保持一致的特性。

参考

架构设计之「 CAP 定理 」
大数据理论与实践2 分布式协调服务Zookeeper
CAP定理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值