1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| 1.tickTime:Client-Server通信心跳时间 Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳.tickTime以毫秒为单位 tickTime=2000
2.initLimit:Leader-Follower初始通信时限 集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量) initLimit=5
3.syncLimit:Leader-Follower同步通信时限 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量) syncLimit=2
4.dataDir:数据文件目录 Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里 dataDir=/mnt/data/zookeeper
5.dataLogDir: 日志存放位置 Zookeeper保存日志存放位置,默认情况下,Zookeeper将写数据的日志文件放在dataDir目录里 dataLogDir=/mnt/log/zookeeper
6.clientPort:客户端连接端口 客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求 clientPort=2181
7.globalOutstandingLimit: 最大请求堆积数.默认是1000.ZK运行的时候,尽管server已经没有空闲来处理更多的客户端请求了,但是还是允许客户端将请求提交到服务器上来,以提高吞吐性能. globalOutstandingLimit=1000
8.preAllocSize:预先开辟磁盘空间,用于后续写入事务日志.默认是64M,每个事务日志大小就是64M.如果ZK的快照频率较大的话,建议适当减小这个参数
9.snapCount:每进行snapCount次事务日志输出后,触发一次快照(snapshot),此时,ZK会生成一个snapshot.*文件,同时创建一个新的事务日志文件log.*.默认是100000.
10.autopurge.snapRetainCount:指定了需要保留的文件数目 autopurge.snapRetainCount=3
7.服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口) 这个配置项的书写格式比较特殊,规则如下: server.N=YYYY:A:B
N 表示服务器编号,需要在dataDir目录下创建myid文件,将N写入到myid文件内 YYYY 表示服务器地址 A 表示数据同步端口 B 表示选举端口
8.zookeeper集群为什么设置为奇数? zookeeper有这样一个特性: 集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的.也就是说如果有2个zookeeper,那么只要有一个死了zookeeper就不能用了,因为一没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下两个正常的,过半了,所以三个zookeeper的容忍度为1;同理你多列举几个(2 -> 0; 3 -> 1; 4 - >1; 5 -> 2; 6 -> 2):你会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢.
|