ZooKeeper作为一个服务,它本身也可能发生故障,所以我们也需要将Zookeeper进行集群,避免单点故障问题,以保证ZooKeeper本身的高可用性,那么我们需要搭建奇数台Zookeeper构成一个Zookeeper的集群。
集群中只要有超过半数的机器是正常工作的,那么整个集群对外就是可用的。
1、下载安装3个Zookeeper
因为ZooKeeper也是和Tomcat一样,解压就能用,所以我们直接在/usr/local目录下复制即可。
2、将3个ZooKeeper中conf目录下的zoo_sample.cfg复制一份,改为zoo.cfg
因为我们是直接复制的,目前这个zoo.cfg已经存在了。
3、配置zoo.cfg文件
● dataDir=/usr/local/zookeeper-3.4.10-01|02|03/data
● clientPort=2182|2183|2184
● 添加zk之间沟通及选举的server信息,如果是不同机器,端口可以相同
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
格式: server.A=B:C:D:
A是一个数字,表示这个是第几号服务器,
B是这个服务器的ip地址
C第一个端口用来集群成员的信息交换,表示的是这个服务器与集群中的Leader服务器交换信息的端口
D是在leader挂掉时专门用来进行选举leader所用
4、创建三个dataDir目录
/usr/local/zookeeper-3.4.10-01/data
/usr/local/zookeeper-3.4.10-02/data
/usr/local/zookeeper-3.4.10-03/data
因为我们是复制的zk,所以这些目录是存在的,我们将原来data目录下的内容删除,执行 rm –rf *
5、每个data目录中都创建一个名为myid的文件
3个文件的内容分别写1、2、3;
这个1、2、3是对应前面的server.1、 server.2、 server.3;
执行
echo 1 > myid
echo 2 > myid
echo 3 > myid
至此一个zookeeper的集群就搭建OK啦。
6、 broker配置
persistenceAdapter>
<replicatedLevelDB
replicas="3"
bind="tcp://0.0.0.0:0"
zkAddress="localhost:2182,localhost:2183,localhost:2184"/>
</persistenceAdapter>
7、启动zk,启动ActiveMQ进行测试