当前位置:   article > 正文

ZooKeeper分布式协调组件的投票选举_局域网多个zookeeper会自动选举

局域网多个zookeeper会自动选举


一、ZooKeeper介绍

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服务,比如分布式同步,配置管理,集群管理,命名管理,队列管理。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在 Java 上,提供 Java 和 C 的客户端 API。
众所周知,协调服务非常容易出错,但是却很难恢复正常,例如,协调服务很容易处于竞态以至于出现死锁。我们设计 ZooKeeper 的目的是为了减轻分布式应用程序所承担的协调任务。
ZooKeeper 是集群的管理者,监视着集群中各节点的状态,根据节点提交的反馈进行下一步合理的操作。最终,将简单易用的接口和功能稳定,性能高效的系统提供给用户。

二、ZooKeeper提供了什么

ZooKeeper在分布式领域,能够帮助解决很多很多的分布式难题,但是底层却只是依赖于两个主要的组件:

  • znode文件系统
  • watch监听系统

三、ZooKeeper投票

前:选取第一台服务器会向整个局域网寻找leader(2888端口),如果有leader就会自动变为follower,但是如果没有leader,就会联系局域网里的所有服务器(3888端口)。

  1. 第一台服务器启动的zk进程,会向局域网进行广播投票,首先投自己。
  2. 第二台服务器启动的zk进程,会向局域网进行广播投票,投自己(因为自己的id大)。
  3. 1和2两个zk进程都会进行第二轮投票,各自得一票,那就继续投票。
  4. 1在这轮会投票给2,因为2的zk进程id大,同时2进程也会投给自己。投票结果,2的zk进程得两票顺利当选为leader,1自动切换为follower
  5. 第三台启动的zk进程,上线就发现已经有了leader,那么自动就变为follower。
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/555188
推荐阅读
相关标签
  

闽ICP备14008679号