zookeeper单机部署伪集群


下载zooleeper

1、下载zookeeper:https://zookeeper.apache.org/releases.html

2、解压zookeeper:下载zookeeper后解压至E:\Java\zookeeper\

部署伪集群

 这此示例中,部署3个单机版的伪集群,分别在目录server0、server1、server2下,具体步骤如下
1、在E:\Java\zookeeper-3.4.8目录下,分别创建server0、server1、server2三个文件,并将刚解压过的zookeeper分别拷至三个目录下。

2、server0文件

  • 创建目录data:E:\Java\zookeeper-3.4.8\server0\zookeeper\data
  • 创建目录log:E:\Java\zookeeper-3.4.8\server0\zookeeper\log
  • 创建文件myid:E:\Java\zookeeper-3.4.8\server0\zookeeper\data\myid

其中myid内容为0,如下所示:

修改zoo.cfg内容(路径:E:\Java\zookeeper-3.4.8\server0\zookeeper\conf\zoo.cfg),具体内容如下。

3、server1文件

  • 创建目录data:E:\Java\zookeeper-3.4.8\server1\zookeeper\data
  • 创建目录log:E:\Java\zookeeper-3.4.8\server1\zookeeper\log
  • 创建文件myid:E:\Java\zookeeper-3.4.8\server1\zookeeper\data\myid

其中myid内容为1,如下所示:


修改zoo.cfg内容(路径:E:\Java\zookeeper-3.4.8\server1\zookeeper\conf\zoo.cfg),具体内容如下。

4、server2文件

  • 创建目录data:E:\Java\zookeeper-3.4.8\server2\zookeeper\data
  • 创建目录log:E:\Java\zookeeper-3.4.8\server2\zookeeper\log
  • 创建文件myid:E:\Java\zookeeper-3.4.8\server2\zookeeper\data\myid

其中myid内容为2,如下所示:


修改zoo.cfg内容(路径:E:\Java\zookeeper-3.4.8\server2\zookeeper\conf\zoo.cfg),具体内容如下。

启动zooleeper服务器

分别进入zookeeper\bin目录下,启动zkServer.cmd即可。

zoo.cfg参数说明

  • tickTime:zookeeper服务器之间或者客户端与服务器之间维持心跳的时间间隔,单位毫秒,即每个tickTime时间就会发送一个心跳。
  • initLimit:集群中包含多台server,其中一台为leader,其余的server为follower,initLimit参数配置初始化连接时,follower和leader之间的最长心跳时间,若此参数设置为10,说明时间限制为10倍tickTime,即10*tickTime。
  • syncLimit:设置leader和floolwer之间发送消息、请求和应该的最大时间长度,若此参数设置为5,说明时间限制为5倍tickTime,即10*tickTime。
  • dataDir:zookeeper保存数据的目录,默认情况下,zookeeper将写入数据的日志文件也保存在这个目录里。
  • dataLogDir:zookeeper保存日志文件的目录。
  • clientPort:客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接受客户端的访问请求。
  • server.X=A:B:C其中X是一个数字,表示这是第几号server。A是该server所在的IP地址。B配置该server和集群中leader交换消息所使用的端口。C配置选用leader时所使用的端口。由于配置的事伪集群模式,所以各个server的B、C参数必须不同。

在dataDir目录下必须创建myid文件,myid文件用于zookeeper验证server序号等,myid文件只有一行,并且为当前server的序号,例如server.1的myid就是1,server2的myid就是2。

具体参数讲解可参考http://zookeeper.apache.org/doc/current/zookeeperStarted.html。