首页 理论教育 Java服务端研发-Zookeeper介绍

Java服务端研发-Zookeeper介绍

时间:2026-01-27 理论教育 眠眠 版权反馈
【摘要】:Zookeeper是用Java语言开发的,提供Java和C语言的客户端API。Zookeeper的集群模式为2n+1[9]个服务(奇数),只允许n个失效。Zookeeper集群服务有Leader、Follower、Observer三个角色。■Leader:提供写服务,针对Zookeeper进行数据更新相关操作。■Observer:是一种新型的Zookeeper节点,不参与投票,只是简单地接收投票结果,增加再多的Observer,也不会影响集群的写性能。Zookeeper结构是由znode节点组成的树形结构。ZooKeeper中临时节点不能拥有子节点。Zookeeper的应用场景是:■分布式命名服务:按名称标识集群中的节点。

Zookeeper[8]是一个开放源码的分布式应用程序协调服务,是为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、命名服务、分布式同步、组服务等。Zookeeper是用Java语言开发的,提供Java和C语言的客户端API。

Zookeeper的集群模式为2n+1[9]个服务(奇数),只允许n个失效。Zookeeper集群服务有Leader、Follower、Observer三个角色。

■Leader:提供写服务,针对Zookeeper进行数据更新相关操作。

■Follower:提供读服务,Leader宕机后会在Follower中重新选举新的Leader。

■Observer:是一种新型的Zookeeper节点,不参与投票,只是简单地接收投票结果,增加再多的Observer,也不会影响集群的写性能。除了这个差别,其他方面和Follower基本上一样。

Zookeeper结构是由znode节点组成的树形结构。格式类似分层的文件目录树形式,每个节点可以存放数据,也可以有子节点。节点的访问路径为绝对路径,不存在相对路径。

znode节点根据存活时间,分为持久节点和临时节点。节点的类型在创建时就确定下来,并且不能改变。

■持久节点的存活时间不依赖于客户端会话,只有客户端在显式执行删除节点操作时,节点才消失。(https://www.xing528.com)

■临时节点的存活时间依赖于客户端会话,当会话结束,临时节点将会被自动删除(当然也可以手动删除临时节点)。ZooKeeper中临时节点不能拥有子节点。 Zookeeper的应用场景是:

■分布式命名服务:按名称标识集群中的节点。

■数据发布与订阅:应用启动时主动获取配置信息,并在节点上注册一个观察者(watcher),每次配置更新都会通知到应用。

■分布式通知/协调:不同的系统都监听同一个节点,一旦有了更新,另一个系统能够收到通知。

■分布式锁:Zookeeper能保证数据的强一致性,用户任何时候都可以相信集群中每个节

点的数据都是相同的。

■集群管理:服务加入集群时创建一个节点,写入当前服务的状态。监控父节点的应用会收到通知,进行相应的处理。离开时删除节点,监控节点的应用同样也会收到通知。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈