02-zookeeper总结

Zookeeper使用ZAB协议进行集群Leader选举,确保数据一致性。它由2n+1台服务器组成,至少需要n+1台正常工作。Zookeeper提供持久、持久有序、临时和临时有序节点,以及会话管理和Watcher机制,实现分布式环境下的服务协调。ZAB协议基于2pc进行消息广播和崩溃恢复,确保集群在Leader故障后的稳定运行。
摘要由CSDN通过智能技术生成

Zookeeper总结

zookeeper主要是解决分布式环境下的服务协调问题而产生的。zookeeper用zab协议做集群Leader选举,使用分布式事务实现数据的的一致性。其实现机制的整合呈现给我们了一个实现了弱顺序一致性分布式协调服务。

zookeeper的集群

集群角色
Leader角色

Leader无武器是整个zookeeper集群的核心,主要的工作任务有两项:

  • 事务请求的唯一调度和处理者,保证集群事务处理的顺序性。
  • 集群内部各服务器的调度者。
Follower角色

Follower角色的主要职责是:

  • 处理客户端非事务请求、转发事务请求给leader服务器。
  • 参与事务请求Proposal的投票(需要半数以上服务器通过才能通知Leader Commit数据;Leader发起的提案,要求Follower投票)
  • 参与Leader选举的投票
Observer角色

Observer是zookeeper3.3开始引入的一个全新的服务器角色,从字面来理解,该角色充当了观察者的角色。

观察zookeeper集群中的最新状态变化并将这些状态变化同步到observer服务器上。Observer的工作原理与follower角色基本一致,而它和follower角色唯一不同的在于Observer不参与任何形式的投票,包括事务请求Proposal的投票和Leader选举的投票。简单来说,Observer服务器只提供非事务请求服务,在不影响集群事务处理能力的前提下提升集群非实物处理的能力。

image-20191107153525665

集群组成

通常zookeeper是由2n+1台server组成,每个server都知道彼此的存在。对于2n+1台server,只要有n+1台(大多数)server可用,这个系统就保持可用。

一个zookeeper集群如果要对外提供可用的服务,那么集群中必须要有过半的机器正常工作并且批次之间能够正常通信,基于这个特性,如果搭建一个能够允许F台机器down掉的几区,那么就要部署2*F+1台服务器构成的zookeeper集群。因此3台机器构成的zookeeper集群,能够在挂掉一台机器后依然正常工作。一个5台机器集群的服务,能够在2台机器挂掉的情况下进行容灾。如果一个有6台服务器构成的集群,同样只能挂掉2台机器。因此,5台和6台在容灾能力上并没有明显优势,反而增加了网络通信负担。系统启动时,集群中的server会选举出一台server为Leader,其他就作为Follower(这里先不考虑Observer角色)。

之所以要满足这样一个等式,是因为一个节点要称为集群中的Leader,需要有超过集群中过半数的节点支持,这个涉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值