前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZooKeeper 集群

ZooKeeper 集群

作者头像
happyJared
发布2019-11-03 13:50:16
4270
发布2019-11-03 13:50:16
举报
文章被收录于专栏:happyJared

常见的集群模式是: Master/Slave 模式(主备模式)。在这种模式中,通常 Master 服务器作为主服务器提供写服务,其他的 Slave 服务器通过异步复制的方式来获取 Master 服务器最新的数据,并且提供读服务。

但是,在 ZooKeeper 中并没有选择传统的 Master/Slave 概念,而是引入了 Leader、Follower 和 Observer 三种角色,如下图所示:

ZooKeeper 集群

在 ZooKeeper 集群中,所有的机器通过 Leader 选举过程来选定一台称为 “Leader” 的机器,Leader 既可以为客户端提供写服务,也能提供读服务。除了 Leader 外,Follower 和 Observer 都只能提供读服务,Follower 和 Observer 唯一的区别在于 Observer 机器不参与 Leader 的选举过程,也不参与写操作的 “过半写成功” 策略,故 Observer 机器可以在不影响写性能的情况下提升集群的读性能。

ZooKeeper 中的不同角色

当 Leader 服务器出现网络中断、崩溃退出或重启等异常情况时,ZAB 协议就会进人恢复模式,然后选举产生新的 Leader 服务器,这个过程大致是这样的:

  1. Leader election(选举阶段):在一开始,节点都处于选举阶段,只要有一个节点得到超半数节点的票数,它就可以当选准 Leader;
  2. Discovery(发现阶段):在这个阶段,Followers 跟随 Leader 进行通信,同步 Followers 间最近接收的事务提议;
  3. Synchronization(同步阶段):同步阶段主要是利用 Leader 前一阶段获得的最新提议历史,同步集群中所有的副本,同步完成之后,准 Leader 才会成为真正的 Leader;
  4. Broadcast(广播阶段): 到了这个阶段,Zookeeper 集群才能正式对外提供事务服务,并且 Leader 可以进行消息广播,同时。如果有新的节点加入,还需要对新节点进行同步。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档