zookeeper的集群部署方式感觉是接触到的中间件集群搭建相对来说比较简单的了。
准备安装包:apache-zookeeper-3.7.2-bin.tar.gz
三台服务器:192.168.1.100、192.168.1.101、192.168.1.102
创建安装目录 mkdir -p /data/zk
上传安装包至/data/zk目录,解压安装
tar -zxf apache-zookeeper-3.7.2-bin.tar.gz
mv apache-zookeeper-3.7.2-bin zookeeper
复制配置文件cp conf/zoo_sample.cfg zoo.cfg
修改配置
#数据存放目录
dataDir=/data/app/zk/data
#添加集群配置 server1、2、3分别对应三台服务器
server.1=192.168.1.100:2888:3888
server.2=192.168.1.101:2888:3888
server.3=192.168.1.102:2888:3888
2888和3888是集群间通信使用的端口,客户端连接还是用clientPort配置的端口。注意集群服务器间开通对应的端口访问策略。
三台服务器依次创建数据目录
mkdir -p /data/app/zk/data
然后在数据目录依次创建 myid文件。myid文件存放server编号。如这里按照上面的配置
在192.168.1.100服务器 echo 1 > /data/app/zk/data/myid
在192.168.1.101服务器 echo 2 > /data/app/zk/data/myid
在192.168.1.102服务器 echo 3 > /data/app/zk/data/myid
然后分别启动三台zookeeper服务。bin/zkServer.sh start
启动完成后通过 bin/zkServer.sh status查看当前服务状态。
>./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /data/app/zk/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader
--------------------------------------
./zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /data/app/zk/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
最后执行结果如上会有一台Mode: leader,另外两台Mode: follower。也就是一主二从。
然后在任意一台添加节点测试
用客户端命令bin/zkCli.sh连接。最后可以看到在一台上面create 节点另外两台上也可以获取到。同样删除修改亦是。
使用java连接集群connectString将集群地址都写上,中间用英文逗号相隔。如
connectString=“192.168.1.100:2181,192.168.1.101:2181,192.168.1.102:2181”