点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!! Zookeeper是一个开源的分布式协调服务,由Apache基金会开发和维护。它被设计为一个高性能、高可用、高可扩展的协调系统,用于在分布式系统中进行数据同步、协同、配置管理和分布式锁等操作。
Zookeeper的核心概念是znode(z节点),它类似于文件系统中的目录节点,但是它可以存储数据和监视状态变化。Zookeeper提供了一组原子操作,用于对znode进行创建、读取、更新和删除等操作。同时,Zookeeper还提供了一些特殊类型的znode,如顺序节点和临时节点,以支持分布式锁和其他协同算法的实现。Zookeeper可以为分布式系统提供多种服务,例如配置管理、命名服务、分布式锁、组管理等。它被广泛应用于Hadoop、Kafka、HBase等分布式系统中,以保证这些系统的可靠性和高可用性。总的来说,Zookeeper是一个强大的分布式协调服务,为分布式系统提供了重要的基础设施,帮助开发人员更好地管理分布式系统的状态和行为。
2.1 某日告警发现otterzk1用户下的5个节点服务全部挂掉

发现服务启动或者重启反复两三次依然无法成功启动,无法选出leader及follower。Couldn’t bind to /xxx.xxx.xxx.xxx:10032
发现10032是该zk的选举端口,进一步在服务器中查看10032,发现被其他服务占用了。
于是在集群的5个节点,分别将此10032占用端口的服务临时先停止关闭。
2.5 确认无端口占用后,再次进行zk1服务的启动3.1 zk的选举端口是作为选主使用的,平时选举完成后,follower节点是不启用的状态的,进而导致了后续机器上有其他服务部署需求时,部署人员检查并未使用该10032端口,导致了新的服务占用了10032,出现端口冲突,一旦zk服务出现异常,需要重启重新选举时,就会出现本文中的情况了
3.2 考虑业务的重要程度,我们对冲突端口10032的监控服务进行端口更换,已经更换为新的11032端口,从而避免的端口的冲突3.3 至于5个节点同时挂掉的原因,后续经过分析为宿主机负载过大导致,因本文zk集群采用虚拟机部署,当多个虚拟机的宿主机同时出现性能问题时,就可能出现5个zookeeper同时崩溃的情况我们建议对zk这种IO和心跳敏感型的集群,采用物理机部署会更加妥当。