关于Linux中搭建zookeeper集群说明
程序员文章站
2022-07-08 23:27:56
...
1.安装zookeeper
2.搭建集群
2.1 创建目录
mkdir zkClusters
2.2 创建目录
mkdir zk1 zk2 zk3
mkdir {zk1,zk2,zk3}/{data,log}
2.3 分别在zk1/zk2/zk3中的data文件夹中创建新的文件myid.其中的内容依次为1/2/3,与zk节点号对应.
2.4 将zoo_sample.cfg 复制为zoo1.cfg之后修改配置文件.
2.5 修改zoo1.cfg
2.6 配置完成后将zoo1.cfg复制2份.之后需要修改对应的文件夹目录.和不同的端口即可.
2.7 zookeeper集群测试
sh zkServer.sh start zoo1.cfg
sh zkServer.sh start zoo2.cfg
sh zkServer.sh start zoo3.cfg
sh zkServer.sh status zoo1.cfg
sh zkServer.sh status zoo2.cfg
sh zkServer.sh status zoo3.cfg
...
3. zookeeper集群常见问题
3.1 为什么集群一般都是奇数个?
公式: 存活的节点 > N/2
常识: 最小的集群的单位3台.
例子:
1个节点能否搭建集群? 1-1 > 1/2 假的 1个节点不能搭建集群
2个节点能否搭建集群? 2-1 > 2/2 假的 2个节点不能搭建集群
3个节点能否搭建集群? 3-1 > 3/2 真的 3个节点能搭建集群
4个节点能否搭建集群? 4-1 > 4/2 真的 4个节点能搭建集群
3个节点最多允许宕机1台,否则集群崩溃.
4个节点最多允许宕机1台,否则集群崩溃.
搭建奇数台和偶数台其实都可以,但是从容灾性的角度考虑,发现奇数和偶数的效果相同,.所以搭建奇数台.
3.2 ZK集群选举规则
说明: zk集群选举采用最大值(myid)优先的算法实现,如果集群中没有主机,则开始选举(超半数即可),如果有主机,则选举结束.
考题: 1 2 3 4 5 6 7 依次启动时
问题1:谁当主机? 4当主机
问题2:谁永远不能当选主机? 1,2,3