前置条件
- zookeeper集群依赖Java环境,需要提前安装配置好JDK.
- zookeeper集群的节点必须是奇数,否则可能会造成"脑裂"。
zookeeper容错指的是:当宕掉几个zookeeper节点服务器之后,剩下的个数必须大于宕掉的个数,也就是剩下的节点服务数必须大于n/2,这样zookeeper集群才可以继续使用,无论奇偶数都可以选举leader。例如5台zookeeper节点机器最多宕掉2台,还可以继续使用,因为剩下3台大于5/2。至于为什么最好为奇数个节点?这样是为了以最大容错服务器个数的条件下,能节省资源。比如,最大容错为2的情况下,对应的zookeeper服务数,奇数为5,而偶数为6,也就是6个zookeeper服务的情况下最多能宕掉2个服务,所以从节约资源的角度看,没必要部署6(偶数)个zookeeper服务节点。
这里我使用VM部署三台linux虚拟机
ip | 主机名 | myid |
---|---|---|
192.168.48.128 | zk01 | 1 |
192.168.48.129 | zk02 | 2 |
192.168.48.130 | zk03 | 3 |
配置host文件,为三个节点配置域名 方便访问(可以不设置 则对应域名使用真实ip)
vi /etc/hosts
在末尾加入 ip 域名 保存退出后生效
#zookeeper
192.168.48.128 zk01
192.168.48.129 zk02
192.168.48.130 zk03
其他两台同样修改,修改后使用ping
测试。