Zookeeper 安装和配置
Zookeeper的安装和配置十分简单, 既可以配置成单机模式, 也可以配置成集群模式. 下面将分别进行介绍.
tickTime=2000 #zookeeper中使用的基本时间单位, 毫秒值.
dataDir=/Users/apple/zookeeper/data #数据目录. 可以是任意目录.
dataLogDir=/Users/apple/zookeeper/logs #log目录, 同样可以是任意目录. 如果没有设置该参数,
clientPort=2181 #服务器对外服务端口,默认值为2181
server.1=10.1.39.43:2888:3888 #服务器端IP地址,
clientPortAddress=10.10.10.1 #与clientPort匹配,表示某个IP地址,如果服务器有多个网络接口(多个IP地址),如果没有设置这个属性,则clientPort会绑定到所有IP地址上,否则只绑定到该设置的IP地址上
maxClientCnxns=300 #默认值是10,一个客户端能够连接到同一个服务器上的最大连接数,根据IP来区分。如果设置为0,表示没有任何限制
#snap日志和事务日志自动清理配置
autopurge.purgeInterval=24 #这个参数指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能
autopurge.snapRetainCount=7 #这个参数和上面的参数搭配使用,这个参数指定了需要保留的文件数目。默认是保留3个
#高级配置项:
minSessionTimeout #最小的session time时间,默认值是2个tick time,客户端设置的session time 如果小于这个值,则会被强制协调为这个最小值
maxSessionTimeout #最大的session time 时间,默认值是20个tick time. ,客户端设置的session time 如果大于这个值,则会被强制协调为这个最大值
// 上面的配置中有两个TCP port。后面一个是用于Zookeeper选举用的,而前一个是Leader和Follower或Observer交换数据使用的。我们还注意到server.后面的数字myid,zookeeper会根据这个id来取出server.x上的配置。比如当前id为1,则对应着zoo.cfg里的server.1的配置。
Zookeeper服务有两个角色,一个是leader,负责写服务和数据同步,剩下的是follower,提供读服务,leader失效后会在follower中重新选举新的leader。
至此, zookeeper的单机模式已经配置好了. 启动server只需运行脚本:
bin/zkServer.sh start
#停止 stop
#状态 status
Server启动之后, 就可以启动client连接server了, 执行脚本:
bin/zkCli.sh -server localhost:2181
集群模式
由于集群模式下, 各server部署在不同的机器上, 因此各server的conf/zoo.cfg文件可以完全一样.
下面是一个示例:
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=4180
server.43=10.1.39.43:2888:3888
server.47=10.1.39.47:2888:3888
server.48=10.1.39.48:2888:3888
示例中部署了3台zookeeper server, 分别部署在10.1.39.43, 10.1.39.47, 10.1.39.48上. 需要注意的是, 各server的dataDir目录下的myid文件中的数字必须不同.
10.1.39.43 server的myid为43, 10.1.39.47 server的myid为47, 10.1.39.48 server的myid为48.