zookeeper是一个集群服务器的管理软件。可以方便管理集群中的各种资源。
直入主题,介绍一下搭建一个zookeeper集群的步骤:
1. 下载zookeeper. 可以在http://zookeeper.apache.org/releases.html 官网下载最新的zookeeper版本
2. 將下载的zookeeper压缩包在本地进行解压。 路径假设 ZOO_HOME
3. ZOO_HOME/conf目录下建立配置文件zoo.cfg,也可以将zoo_sample.cfg内容复制到zoo.cfg中
4.这里面插一句,如果在单机模式下运行。 只需要简单几行配置就可以了
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
tickTime: 单位毫秒,用来做心跳的时间。 一个session的最小过期时间必须是tickTime 的两倍以上。
dataDir:保存zookeeper运行时的一些数据信息
clientProt:zookeeper启动后监听的端口用来提供客户端进行链接
如果是集群环境就要增加一些配置。
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
介绍配置项之前首先要介绍一下,zookeeper集群中的两个概念领导者(leader)和跟随者(follower)
zookeeper的集群需要一台服务器作为领导者,负责接受客户端所有的写请求。而其他的服务器作为跟随者与领导者保持数据的同步。如果集领导者发生与其他服务器通讯发生异常,则集群中服务器重新通过投票机制再选择一台服务器作为领导者。
接下来介绍新增加的配置项
initLimit:是指集群中服务器连接到leader的最长时间限制。 比如例子中配置 initLimit=5 tickTime=2000 那么最长时间为5*2000 是10秒
syncLimit : 是集群中跟随者与leader之间接收数据的时间。计时方式与initLimit类似。
server.x=zoo1:2888:3888
x代表是服务器的id server.1 server.2 server.3 是集群中服务器的列表
zoo1 zoo2 zoo3 是服务器的ip或者域名 后面的两个端口,第一个端口用来链接leader服务器。第二个端口用来选举leader服务器
5.在集群服务器的dataDir中增加一个myid的配置文件。里面记录着服务器id,就是server.x中的x。告诉本机启动时是服务器列表中的哪个服务器。
在集群中每个服务器的配置文件可以保持一致。不过myid有所不同
6.启动zookeeper
在集群中每台服务器上执行:
ZOO_HOME/bin/zkServer.sh start 启动zookeeper