集群中节点数量
最好选择奇数台,比如:集群中有4台node,只允许挂掉1台,因为如果挂掉两台剩余的两台无法正常工作;
如果选择5台挂掉两台后剩余3台仍然可以正常工作。
zookeeper集群允许挂掉的node的数量是:1/2总数量+1台。
一个集群最少需要3台节点;通过公式 F=1,2F+1=3.
集群配置
- node ID,ID的取值有范围限制。
- 范围,如果zookeeper开启 TTL 则id范围是1 ~ 254;如果没有开启TTL则范围是1~255;
所以,zookeeper集群最大为255个节点;
- 范围,如果zookeeper开启 TTL 则id范围是1 ~ 254;如果没有开启TTL则范围是1~255;
集群允许挂掉的节点
- 如果允许挂掉F个节点,则整集群需要有 2*F+1 个节点;
- 意思是集群要想正常工作,则集群活节点的数量需要占总数的 1/2 + 1。
- 集群内节点数量 2n 和 2n-1 台的容错能力是一样的。
注意事项
- transaction log所在分区读写性能影响zookeeper,因为zookeeper先写日志再返回结果;
- jvm服务器不要作用swap,会影响
data目录
data目录记录transaction log,当log增长到一定程度会创建新的日志
文件,同时,zookeeper的运行快状快照会保存在data目录中, 在创建新日志文件时,所有数据仍然写到旧文件;
默认日志文件不会被删除;