zookeeper 搭建单机伪集群

zookeeper 搭建单机伪集群

准备工作

  • 1、本文是在ubuntu 16.04上搭建的
  • 2、安装jdk1.8,过程可以百度或者谷歌
  • 3、下载zookeeper

开始

  • 1、因为机器有限,只能在一台机器上搭建,将下载的zookeeper-3.4.11.tar.gz解压,文件夹复制两份,文件夹名分别改为server1、server2、server3,分别在这三个文件夹里新建data和dataLog这两个文件;
  • 2、打开server1里的conf,将zoo_sample.cfg重命名为在zoo.cfg;
  • 3、在zoo.cfg里添加如下配置
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/code/zookeeper/server1/data
dataLogDir=/home/code/zookeeper/server1/dataLog
clientPort=2181
server.1 =127.0.0.1:2888:3888
server.2 =127.0.0.1:2889:3889
server.3 = 127.0.0.1:2890:3890
initLimit 
ZooKeeper集群模式下包含多个zk进程,其中一个进程为leader,余下的进程为follower。 
当follower最初与leader建立连接时,它们之间会传输相当多的数据,尤其是follower的数据落后leader很多。initLimit配置follower与leader之间建立连接后进行同步的最长时间。

syncLimit 
配置follower和leader之间发送消息,请求和应答的最大时间长度。

tickTime 
tickTime则是上述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10秒。
.server.id=host:port1:port2 
其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。 
host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
  • 4、dataDir和dataLogDir路径不要写错,不然启动会报错:java.net.ConnectException: 拒绝连接
  • 5、将该配置分别复制到server2和server3,这里只要将clientPort改成2182和2183,端口不能冲突
  • 6、至此,基本就搭建完成了

测试

  • 1、随便在三个文件下的bin下输入
./zkServer.sh start
  • 2、都启动之后,在bin再输入,连接到zookeeper
./zkCli.sh -server 127.0.0.1:2182
  • 3、连接成功显示如下
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 
[zk: 127.0.0.1:2181(CONNECTED) 0] 

参考:http://blog.csdn.net/zh521zh/article/details/51732083

猜你喜欢

转载自blog.csdn.net/godloveleo9527/article/details/79633129