zookeeper安装的模式:基于docker安装的zookeeper伪集群模式
配置文件路径
/conf/zoo.cfg
[root@localhost zookeeper]# docker exec -it 28072c3a055e /bin/bash
bash-4.4# cd /conf
bash-4.4# ls
configuration.xsl log4j.properties zoo.cfg zoo_sample.cfg
bash-4.4# cat zoo.cfg
clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
单机配置说明
clientPort: 这个端口就是客户端连接zookeeper服务器的端口,zookeeper会监听这个端口,接受客户端的访问请求
tickTime: 这个时间作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每tickTime就会发送一个心跳,单位:毫秒
autopurge.purgeInterval: 配套snapRetainCount使用,用于配置zookeeper进行历史文件自动清理的频率,如果参数配置为0或者小于零,就表示不开启定时清理功能,默认不开启(3.4以前的版本没有)
autopurge.snapRetainCount:用于配置zookeeper在自动清理的时候需要保留的快照数据文件数量和对应的事务日志文件,最小值是3,如果比3小,会自动调整为3
maxClientCnxns:限制连接到zookeeper客户端的数量。限制并发连接的数量,它通过ip来区分不同的客户端。此配置可以用来阻止某些类别的dos攻击。将它设置为0或者忽略而不进行设置将会取消并发连接的限制
集群配置说明
initLimit:
配置zookeeper接收客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到Leader的Fllower服务器)初始化连接时最长能忍受多少个心跳间隔数。当超过initLimit(默认是10)个心跳时间后zookeeper服务还没有接收到客户端的返回信息,那么表明这个客户端连接失败。
简单说,initLimit就是集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)
syncLimit:
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
server.A=B:C:D:其中A数字,表示配置文件所在是第A号服务器. 与dataDir目录下的myid文件的值相同;B是服务器ip;C表示与 Leader服务器交换信息的端口;D表示的是进行选举时的通信端口。
注意:server.A中的A是在dataDir配置的目录中创建一个名为myid的文件里的值
上面的zoo.cfg中的dataDir的目录是:/data
bash-4.4# cd /data
bash-4.4# ls
myid version-2
bash-4.4# cat myid
1
bash-4.4#
zookeeper的三种端口
2181:客户端连接zookeeper集群使用的监听端口号
2888:集群内机器通讯时使用(Leader和Follower之间数据同步使用的端口号,Leader监听此端口)
3888:选举Leader时使用
zookeeper常用命令
转自:https://blog.youkuaiyun.com/u012516524/article/details/84287795