zookeeper 原子广播

Atomic Broadcast

At the heart of ZooKeeper is an atomic messaging system that keeps all of the servers in sync.

zk的核心是原子广播,该机制保证了各个Server间的同步。实现该机制的协议叫zab协议。

当我们描述zk消息协议时,通常会涉及以下三个概念:

  • Packet: 数据包。通过FIFO 通过发送的字节序列。
  • Proposal: 提议。提案通过zk服务器的法定人数交换数据包达成一致。大多数提案都包含着消息。
  • Message: 消息。将以原子广播方式广播到所有zk服务器节点的字节序列。在提议中加入的信息,并在提交前达成一致。

zk的消息传递包括两个阶段:

Leader activation: 这个阶段,Leader 建立起系统的正确状态,并且准备开始提出提议(Proposal)。

Active messaging: 在这个阶段,Leader接受提案里的消息,并协调消息的传递。

Leader activation 包括 leader 选举。zk中的leader选举有两种算法:

  • LeaderElection 
  • FastLeaderElection 

无论哪种选举方法(默认用快速选举算法),都需要满足以下两个条件:

  1. 这个leader节点可以看到所有follower 节点中最高的zxid。(为确保正确操作)
  2. 达到半数+1个节点已承诺追随leader节点。(提高成功的概率)

在ZAB协议中,节点可能处于以下三种状态之一:

  1. Looking 选举状态
  2. Following 从节点状态
  3. Leading 主节点状态

zk中的节点角色:

  1. leader (读/写)
  2. follower(读)
  3. observer(读) 不参与选举

Paxos协议是分布式一致协议的原语,zab是在其基础上做的简化。

zk 是cp的,在选举过程中,对外服务不可用。 牺牲可用性,保证一致性(最终一致性)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值