部署Zookeeper仲裁模式集群
本例在一台服务器上部署3个zk服务:z1、z2、z3。
1.下载Zookeeper
https://zookeeper.apache.org/
2.解压缩
tar -xvzf zookeeper-3.4..tar.gz
3.zk目录创建
mkdir z1
mkdir z1/data
mkdir z2
mkdir z2/data
mkdir z3
mkdir z3/data
此处注意data文件夹权限,否则有可能zookeeper_server.pid文件会无法写入。
4.myid配置服务器ID
echo > z1/data/myid
echo > z2/data/myid
echo > z3/data/myid
5.整理zk配置文件
以下配置文件分别复制到{PATH_TO_ZK}/z1/z1.cfg、{PATH_TO_ZK}/z2/z2.cfg、{PATH_TO_ZK}/z3/z3.cfg
tickTime=
initLimit=
syncLimit=
dataDir=./z1/data【注1】
clientPort=【注2】 server.=127.0.0.1::
server.=127.0.0.1::
server.=127.0.0.1::【注3】
【注1】:
zk的data目录z1、z2、z3需修改为各自目录。
【注2】:
客户端连接端口号,z1、z2、z3不相同,可分别配置为2181、2182、2183。
【注3】:
server.n指定了编号为n的ZooKeeper服务使用的地址和端口号。
格式为server.{n}={host}:{port1}:{port2}。n为zk服务编号,host为主机名(hostname),port1和port2分别为仲裁通信和群首选举的TCP端口号。
6.启动/关闭服务
可以在不同shell执行以下命令启动zk服务并查看日志。
bin/zkServer.sh start-foreground ./z1/z1.cfg & bin/zkServer.sh start-foreground ./z2/z2.cfg & bin/zkServer.sh start-foreground ./z3/z3.cfg &
bin/zkServer.sh stop ./z1/z1.cfg bin/zkServer.sh stop ./z2/z2.cfg bin/zkServer.sh stop ./z3/z3.cfg
7.使用客户端连接
bin/zkCli.sh -server 127.0.0.1:,127.0.0.1:,127.0.0.1: