ZooKeeper理解(1)

ZooKeeper理解(1)

zk是一个分布式协同系统。可以存储并协同一些重要的数据,但是不适用于数据量大的存储,毕竟不是数据库服务。

典型的应用场景有

  • 配置中心
  • 注册中心
  • 分布式锁
  • 主从选举

zk实现master-worker协同

master-worker是一种分布式架构,master负责监控worker的状态,并给worker分配任务。kafka,Hbase,HDFS都是采用的此架构。规则如下:

  1. 任意时刻master只有一个,如果出现多个就是脑裂问题,要避免脑裂。那么master就是单点的。
  2. 为了保证master的高可用需要有一个备份master,当活跃的master失败后备份的master可用快速启动。
  3. master要实时监控worker的状态,保证及时收到worker成员变化的通知。如果master收到worker的变化就可以重新进行任务的分配。

zk的master-worker实现

  1. 选主的流程:假设集群有2个master,一个活跃master1,一个备份master2。在master1行使master的职能之前,要在zk中创建临时节点/master的znode,如果创建成功master1就是active(活跃的),开始行使master的职能。否则,进行backup(备份的)状态。同时master2要watch临时节点/master,如果在master1在运行过程中崩溃或失败,zk会将临时节点/master删除,master2的watch机制会及时发现,则master2在zk中创建临时节点/master变为新的活跃master,行使master的职能。如下图:
    master激活流程

     

  2. worker的集群加入:worker通过在/workers节点下创建各自的临时节点来加入集群。
  3. master对worker的监控:active的master通过监控/workers节点下的znode列表来实时获取worker成员的变化。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值