Dubbo学习笔记 六:ZooKeeper集群


项目地址:
https://github.com/FateSolo/Dubbo-Test

目录:

在本章将测试注册中心的集群功能,即ZooKeeper的集群。

1. 文件配置

因为资源有限,这里只在虚拟机内配置三个ZooKeeper。

1) 将ZooKeeper复制为三份,分别命名为zookeeper-1、zookeeper-2、zookeeper-3。

2) 在三个文件夹内各创建一个data文件夹,并在data文件夹内创建myid文件,myid只包含一个数字,分别是1、2、3。

3) 分别修改三个ZooKeeper的conf/zoo.cfg:

1
2
3
4
5
6
7
8
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/fate/zookeeper-1/data
clientPort=2181
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889

其余两个大致相同,不同点如下:

1
2
3
4
5
dataDir=/home/fate/zookeeper-2/data
clientPort=2182

dataDir=/home/fate/zookeeper-3/data
clientPort=2183

2. 运行测试

1) 键入如下命令启动三个ZooKeeper:

1
2
3
./zookeeper-1/bin/zkServer.sh start
./zookeeper-2/bin/zkServer.sh start
./zookeeper-3/bin/zkServer.sh start

2) 查看jps:

1
2
3
4
5
6
7
6193 Jps
6115 QuorumPeerMain
6085 QuorumPeerMain
3687 RemoteMavenServer
3579 Main
3789 Launcher
6159 QuorumPeerMain

可以看到已经启动了三个ZooKeeper。

3) 打开dubbo-admin的dubbo.properties,修改如下配置:

1
dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183

除此之外,dubbo-server和dubbo-client的dubbo:registry标签也应该修改如下:

1
<dubbo:registry address="zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183"/>

4) 启动dubbo-admin,查看系统管理 -> 系统状态,注册中心此时处于正常连接状态。

5) 停止zookeeper-1:

1
./zookeeper-1/bin/zkServer.sh stop

此时注册中心仍然处于正常连接状态,集群成功。

6) 停止zookeeper-2:

1
./zookeeper-2/bin/zkServer.sh stop

此时注册中心报错,处于未连接状态,因为超过一半机器已宕机。

7) 重新启动zookeeper-1和zookeeper-2:

1
2
./zookeeper-1/bin/zkServer.sh start
./zookeeper-2/bin/zkServer.sh start

注册中心状态已经恢复正常。


作者 [@FateSolo]
2017 年 06月 04日