看看这个标题,我觉得这是个很多人写,以至于几乎雷同的方面了,怎奈何自己没弄过?项目是用dubbo做rpc,在服务器端,我们用了一个dubbo,经常出现一些问题,我想把它多一点健壮性,首先我想单机的一个zookeeper变成一个伪集群,至少防止zookeeper出错的概率,导致服务挂的情况。
那么下面我们进入搭建zookeeper的伪集群,首先要说一个zookeeper集群的zookeeper数要满足2*n+1,其中n为整数,也就说搭建一个较小的集群,我们需要至少3个zookeeper,下面我们开始进入搭建环节了。首先在机器上面上传zookeeper的tar,然后解压,然后cp多份,分别命名为zk1,zk2,zk3,在zk1,zk2,zk3下分别创建data、logs目录,然后在data目录下vim myid,分别写入1、2、3。然后把conf文件夹下的zoo_simple.cfg改为zoo.cfg,然后分别修改zk1、zk2、zk3下zoo.cfg中的dataDir=为对应的zk的data的路径绝对路径,dataLogDir=为对应zk的logs的路径绝对路径,以及client port为三个不一样的(2181、2182、2183)端口。
都加入:
server.1=127.0.0.1:8880:7770
server.2=127.0.0.1:8881:7771
server.3=127.0.0.1:8882:7772
解释一下这个:
server.X=A:B:C
其中X是一个数字, 表示这是第几号server. 这个与myid中的数据对应
A是该server所在的IP地址.
B配置该server和集群中的leader交换消息所使用的端口.
C配置选举leader时所使用的端口.
由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.
这样就搞定了,然后启动:分别进入zk1、zk2、zk3的bin目录,用
./zkServer.sh start
就启动好了。启动好了,看看各个节点的状态:用
./zkServer.sh status
这样就可以检查一下。就这样了,其中也是拜读了别人的作品。谢谢。