ZooKeeper安装与配置集群( 二 )


ZooKeeper安装与配置集群

文章插图
启动闪退
如果启动闪退 你可以编译 bin 下的.cmd 添加pause 可以更清楚看清错误
启动实例
三个实例都配置完成后启动 bin 下的.cmd 报错了
单机可以正常启动,集群就报错 。
原因: 集群查找myid文件就嗝屁……是把"\"当做是转义符处理,所以路径错误,找不到myid文件从而启动失败,修改该路径后重新启动一切正常(改为双斜杠\\)
修改路径:=D:\\work\\\\--3.7.1-bin-\\data
=D:\\work\\\\--3.7.1-bin-\\logs
启动(注意: 在启动第一台服务 会一直跳出错误信息,这是因为选举策略 不用管)机器数量启动过半了才能选出
注意:我在启动 这台服务的时候 由于我的端口被占用 我在中分别对zoo.cfg中的.3=:2289:3389改为 2286 :2286 方可正常 。
通过 cmd 命令行 查看 是否启动正常 命令:jps
通过控制台看看不是 一台两台



总之,集群中id小的机器会向比自己id大的机器投票 如果现在把 关闭会接任职务 可以自己试一下。
脚本一次性启动三台
一台一台启动太麻烦,创建文件.bat内容如下
选举策略领导者选举( ):在集群中,有一个主节点(),负责协调整个集群的运行 。主节点会选举一个领导者(),作为自己的代理人,负责处理集群中的事务和任务 。当一个新的客户端连接到集群时,它会尝试与主节点建立连接 。如果连接成功,则客户端会发送一个请求,请求成为新的领导者 。如果主节点已经选举出了一个领导者,则客户端会等待,直到领导者就职 。如果领导者还未就职,则客户端会一直等待,直到领导者选举完成 。配置管理选举():在集群中,可能会存在多个客户端同时连接到集群,需要共享一些配置信息 。为了保证这些配置信息的一致性和可靠性,集群会采用配置管理选举()策略 。在这种策略下,当一个客户端连接到集群时,它会尝试与主节点建立连接 。如果连接成功,则客户端会发送一个请求,请求成为新的领导者 。如果主节点已经选举出了一个领导者,则客户端会等待,直到领导者就职 。如果领导者还未就职,则客户端会一直等待,直到领导者选举完成 。多数选举( ):在集群中,如果多个客户端同时发送请求,想要成为新的领导者,则它们会根据一定的规则来竞争 。具体来说,这些规则可能包括:时间戳、先到先得(Round Robin)等 。在这种策略下,多个客户端会根据自己的请求时间戳来排序,最早请求的客户端会成为新的领导者 。如果两个或多个客户端的请求时间戳相同,则会采用“多数选举”策略,选举出一个领导者 。独裁选举( ):在集群中,只有一个客户端可以成为新的领导者 。这种策略类似于“领导者选举”策略,但是当一个客户端成为领导者时,它可以完全控制整个集群,包括资源分配、事务处理等 。这种策略通常不推荐使用,因为它可能导致集群的不稳定和不可预测性 。
总结: 的选举策略取决于具体的应用场景和需求 。在选择选举策略时,需要考虑性能、可靠性、安全性等因素 。不同的策略会对集群的运行产生不同的影响,需要根据实际情况进行选择 。
协议
的ZAB协议是一种分布式一致性协议,用于确保在分布式环境下多个实例之间的数据一致性 。它主要包括原子广播和崩溃恢复两个功能 。
原子广播:
ZAB协议通过原子广播机制来确保分布式环境下多个实例之间的数据一致性 。具体来说,当一个实例(主节点)需要向其他实例(从节点)广播数据时,主节点会将数据以原子的方式广播到所有从节点 。这样,所有从节点都能够同步数据,从而确保整个集群中的数据一致性 。