一. 简介
为了真实模拟线上环境以及选举机制,特意买了三台百度服务器。
二. 安装步骤
2.1 给三台服务器分别搭建jdk
安装步骤请参照博主的另一篇博文: linux下安装jdk8
2.2 下载zookeeper安装包
zookeeper下载官网路径: http://mirrors.hust.edu.cn/apache/zookeeper/
2.3 上传并解压zookeeper-3.4.13.tar.gz(三台服务器一样操作)
在/home/env目录下创建zookeeper目录,上传zookeeper-3.4.13.tar.gz,并解压
[root@dxb ~]# cd /home/env/zookeeper/
[root@dxb zookeeper]# tar -zxvf zookeeper-3.4.13.tar.gz
2.4 给三台服务器分别创建data目录(三台服务器一样操作)
在/home/env/zookeeper/目录下创建data目录
2.5 将zoo_simple.cfg重命名为zoo.cfg (三台服务器一样操作)
2.6 修改zoo.cfg中的dataDir以及clientPort(三台服务器一样操作)
注: 三台端口均为2181
2.7 在data目录下创建myid文件,内容分别为1,2,3
另外俩台myid文件的内容分别为2,3
2.8 在zoo.cfg中配置zookeeper的集群IP和port列表(三台服务器一样操作)
注: server.服务器ID=服务器外网IP地址:服务器之间通信端口:服务器之间投票选举端口
server.1=182.61.53.64:2888:3888
server.2=182.61.61.90:2888:3888
server.3=182.61.32.229:2888:3888
关于这一点,配置中会出现用外网IP无法启动集群,如果使用内网IP则可以,但后面别的应用应该无法连接zookeeper了。
解决方案:
在zoo.cfg配置文件中添加 quorumListenOnAllIPs=true 即可解决问题。
三. 测试
3.1 启动集群
按照顺序来: 先启动myid为1的,然后2,3分别启动
[root@dxb conf]# cd /home/env/zookeeper/zookeeper-3.4.13/bin/
[root@dxb bin]# ./zkServer.sh start
启动后如下:
3.2 查看各个zookeeper状态
myid为1的: 刚开始是not running状态
myid为2的: 此时是leader状态:
myid为3的:此时是follower状态:
此时再去查看myid为1的,状态改为follower状态了:
然后我把myid为2的主节点关掉:
然后再查看myid为3的状态,会发现它变为了主节点:
此时,再次启动myid为2的节点,此时,会发现它变成了follower节点:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/17792.html