Apache ZooKeeper - 使用源码启动ZK集群模式

举报
小工匠 发表于 2021/09/10 01:02:07 2021/09/10
【摘要】 文章目录 Pre配置总览端口说明Node 1【zoo1.cfg 】【myid】 Node 2【zoo2.cfg 】【myid】 Node 3【zoo3.cfg 】【myid】 启动集群...

在这里插入图片描述

Pre

Apache ZooKeeper - 构建ZooKeeper源码环境及StandAlone模式下的服务端和客户端启动

有了使用源码启动单节点的经验,集群模式就很容易了,无非就是多几个配置文件 ,启动了集群模式才好去分析分布式环境下的leader的选举等源码

在这里插入图片描述


配置总览

在这里插入图片描述


端口说明

clientPort=2181
server.1=127.0.0.1:2888:3888

  
 
  • 1
  • 2

我们以这个为例,来看下这几个端口都是干啥用的

  • 2181 对client端提供服务

  • 2888 Leader监听此端口 集群内机器通讯使用

  • 3888 选举leader使用


Node 1

【zoo1.cfg 】

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/IdeaProjects/zookeeperSource/data/zk1
clientPort=2181
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

【myid】

在这里插入图片描述


Node 2

【zoo2.cfg 】

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:\\IdeaProjects\\zookeeperSource\\data\\zk2
clientPort=2182
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

调整clientPort和dataDir

【myid】

在这里插入图片描述


Node 3

【zoo3.cfg 】

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/IdeaProjects/zookeeperSource/data/zk3
clientPort=2183
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

调整clientPort和dataDir

【myid】

在这里插入图片描述


启动集群环境

分别启动3个节点

在这里插入图片描述


测试

启动第一个节点 ,会报错,因为其他两个节点还没启动,连接报错 Cannot open channel to 3 at election address /127.0.0.1:3890

启动第二个节点后,节点正常了, 此时经过选举将节点二选举为leader节点,节点1为follower

节点二日志:
在这里插入图片描述

在这里插入图片描述

启动第三个节点后, 加入到集群,节点三的同样也是follower节点

在这里插入图片描述

好了 完事儿了 操作就是这么简单

在这里插入图片描述


接下来从源码角度分析ZK集群启动时的选主过程~

在这里插入图片描述

文章来源: artisan.blog.csdn.net,作者:小小工匠,版权归原作者所有,如需转载,请联系作者。

原文链接:artisan.blog.csdn.net/article/details/110225768

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。