ZooKeeper集群角色介绍

ZooKeeper集群中

包括如下三种角色:①leader   follower    observer


角色分析:

    leader:是zookeeper里的核心,它是起到了整个主导集群的作用。比如事务请求的调度、处理,保证事务处理中的顺序性;

    follower:①处理客户端的非事务请求
                    ②转发事务请求给leader服务器
                    ③参与整个事务的投票过程,(必须过半集群服务器发送ack,才能够commit提交)
                    ④参与leader选举的投票

   observer:一个观察者的角色。是 zookeeper3.3开始引入的一个全新的服务器角色。能够了解集群中的状态变化,对这些状态                         进行同步,工作原理和follower差不多  
                   唯一的不同:observer节点不参与任何形式的投票(包括:事务的投票和leader选举的投票)


节点情况处理:

  客户端连接zookeeper集群,会随机连接集群中的某个节点

       1.如果是读请求,可以在任意节点去处理数据;

       2.如果是写请求,那么这个请求会转发给leader去处理,使用2PC协议来完成事务的提交。

提示:
     1.2PC协议(参考:2PC协议),不会将事务转发给observer节点;
     2.observer节点,在事务2PC协议处理完成之后,会将数据同步至observer节点;
     3.zookeeper集群,不需要集群中所有节点都给出确定响应才能提交,只要当前集群中过半数节点给确定响应,事务就会提交。


为什么要有observer节点

       如果希望zookeeper集群的性能更强,我们只能水平扩展,引入更多的节点来满足要求。引入更多的节点,虽然会带来性能的提升,但是也会带来性能上的一些影响。所有的请求都需要更多的节点来完成事务操作的投票,多一个节点投票就相当于多一个网络请求,也会对整个集群的性能带来影响。因此,不需要参与写事务投票和leader选举投票的基础上,observer能够在不影响集群性能的情况下做到提高整个集群的性能,这就是observer节点存在的意义。

      但是observer节点必须要同步 leader 的数据,从而在处理请求的时候保证数据的一致性。


zookeeper集群节点2n+1奇数节点机制

      满足zookeeper的投票机制,必须满足过半节点能够正常工作,投票结果才能有效(偶数节点的话,多加节点,不但不会影响结果,多一个节点投票反而还会增加网络负担)


博主写作不易,来个关注呗

求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙

博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扛麻袋的少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值