【ZooKeeper 集群:选举,角色,搭建】

时间:2021-07-08 00:41:30

一、Leader选举

二、集群角色:

1、Leader领导者

2、Follower跟随者

3、Observer观察者

三、集群搭建


一、Leader选举

  • Serverid:服务器ID
    编号越大,在选举算法中权重越大。
  • Zxid:数据ID
    服务器中存放的最大数据ID,值越大数据越新,在选举算法中权重越大。
  • Leader产生
    如果某台ZooKeeper获得了超过半数的选票,则此ZooKeeper就可以成为Leader。

【ZooKeeper 集群:选举,角色,搭建】


二、集群角色

  • 1、Leader领导者
    ①处理事务请求(如:增删改操作)
    ②集群内部各服务器的调度者
  • 2、Follower跟随者
    ①处理非事务请求(如:查询)
    ②转发事务请求给Leader服务器
    ③参与Leader选举投票
  • 3、Observer观察者
    ①处理非事务请求(如:查询)
    ②转发事务请求给Leader服务器

【ZooKeeper 集群:选举,角色,搭建】


三、集群搭建

以下操作需在各个集群服务器上进行,示例仅提供一个模板。

  • ①复制zoo.cfg编辑配置

​mv zoo_sample.cfg zoo.cfg​


mkdir /usr/local/zookeeper-cluster/zookeeper-1/data
mv /usr/local/zookeeper-cluster/zookeeper-1/conf/zoo_sample.cfg /usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg

vim /usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg
clientPort=2181
dataDir=/usr/local/zookeeper-cluster/zookeeper-1/data

【ZooKeeper 集群:选举,角色,搭建】


  • ②配置集群服务器IP列表

在每个zookeeper的 data 目录下创建一个 myid 文件,内容分别是1、2、3 。这个文件就是记录每个服务器的ID;
使用指令:​​echo 1 > /usr/local/zookeeper-cluster/zookeeper-1/data/myid​​,该指令的含义,追加 ​​1​​ 到 ​​myid​​ 文件中,如果文件不存在则创建并追加。

【ZooKeeper 集群:选举,角色,搭建】


​server.1=192.168.253.128:2881:3881​​的含义:server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口


vim /usr/local/zookeeper-cluster/zookeeper-1/conf/zoo.cfg
server.1=192.168.253.128:2881:3881
server.2=192.168.253.129:2881:3881
server.3=192.168.253.130:2881:3881

【ZooKeeper 集群:选举,角色,搭建】


  • ③启动各个集群实例


/usr/local/zookeeper-cluster/zookeeper-1/bin/zkServer.sh start

【ZooKeeper 集群:选举,角色,搭建】


  • ④查看集群状态


/usr/local/zookeeper-cluster/zookeeper-1/bin/zkServer.sh status

【ZooKeeper 集群:选举,角色,搭建】


四、结尾

以上即为ZooKeeper集群相关的基础内容