2 Zookeeper集群部署

注:在前面 Zookeeper基础入门 基础上搭建集群环境。

一 Zookeeper 集群模式一共有三种类型的角色

  • Leader: 处理所有的事务请求(写请求),可以处理读请求,集群中只能有一个Leader
  • Follower:只能处理读请求,同时作为 Leader的候选节点,即如果Leader宕机,Follower节点要参与到新的Leader选举中,有可能成为新的Leader节点。
  • Observer:只能处理读请求。不能参与选举

二 集群安装

本例搭建的是伪集群模式,即一台机器上启动三个zookeeper实例组成集群,真正的集群模式无非就是实例IP地址不同,搭建方法没有区别。

  1. 进入zookeeper目录,创建一个专门用来放集群数据的cluster-data目录
//进入目录,创建cluster目录
cd apache-zookeeper-3.5.10-bin
mkdir cluster-data
cd cluster-data
//在cluster-data目录下创建三个目录,用于后面三台服务对应的数据存储
mkdir zoo1 zoo2 zoo3
//分别在zoo1,zoo2,zoo3目录下创建文件myid 文件,并写入当前实例的server id,即1,2,3
echo "1" > ./zoo1/myid
echo "2" > ./zoo2/myid
echo "3" > ./zoo3/myid
  1. 在conf目录下创建cluster-conf目录,用于存放三台服务对应的配置
//进入配置目录
cd apache-zookeeper-3.5.10-bin/conf
mkdir cluster-conf
//将单机环境的配置文件 复制一份到cluster-conf目录下做对应修改
cp zoo.cfg ./cluster-conf/zoo1.cfg
  1. 修改zoo1.cfg配置,原配置文件里有的,修改成下面的值,没有的则加上
//vi ./cluster-conf/zoo1.cfg

dataDir=/usr/local/zookeeper/apache-zookeeper-3.5.10-bin/cluster-data/zoo1
clientPort=2181
#participant 可以不用写,默认就是participant,也可以是observer角色
server.1=127.0.0.1:2001:3001:participant
server.2=127.0.0.1:2002:3002:participant
server.3=127.0.0.1:2003:3003:participant

说明:server.A=B:C:D:E

  • A 是一个数字,表示这个是第几号服务器;
  • B 是这个服务器的 ip 地址;
  • C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
  • D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
    如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。如果需要通过添加不参与集群选举以及事务请求的过半机制的 Observer节点,可以在E的位置,添加observer标识。
  1. 再把修改好的zoo1.cofg 分别再复制两份到zoo2.cfg,zoo3.cfg并做相应修改
//复制两份
cd ./cluster-conf
cp ./zoo1.cfg ./zoo2.cfg
cp ./zoo1.cfg ./zoo3.cfg

//vi zoo2.cfg
clientPort=2182
dataDir=/usr/local/zookeeper/apache-zookeeper-3.5.10-bin/cluster-data/zoo2
//vi zoo3.cfg
clientPort=2183
dataDir=/usr/local/zookeeper/apache-zookeeper-3.5.10-bin/cluster-data/zoo3
  1. 启动三个zookeeper实例
cd apache-zookeeper-3.5.10-bin
bin/zkServer.sh start conf/cluster-conf/zoo1.cfg
bin/zkServer.sh start conf/cluster-conf/zoo2.cfg
bin/zkServer.sh start conf/cluster-conf/zoo3.cfg
  1. 查看集群状态,根据命令 bin/zkServer.sh status conf/cluster-conf/zoo1.cfg 进行每台服务的状态查询
[root@localhost apache-zookeeper-3.5.10-bin]# bin/zkServer.sh status conf/cluster-conf/zoo1.cfg
ZooKeeper JMX enabled by default
Using config: conf/cluster-conf/zoo1.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@localhost apache-zookeeper-3.5.10-bin]# bin/zkServer.sh status conf/cluster-conf/zoo2.cfg
ZooKeeper JMX enabled by default
Using config: conf/cluster-conf/zoo2.cfg
Client port found: 2182. Client address: localhost. Client SSL: false.
Mode: leader
[root@localhost apache-zookeeper-3.5.10-bin]# bin/zkServer.sh status conf/cluster-conf/zoo3.cfg
ZooKeeper JMX enabled by default
Using config: conf/cluster-conf/zoo3.cfg
Client port found: 2183. Client address: localhost. Client SSL: false.
Mode: follower
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容