江明涛的博客
Zookeeper篇
Zookeeper篇

Zookeeper 的 java 客户端都有哪些?

Apache ZooKeeper Java API:这是官方的 Java API,它提供了 ZooKeeper 的基本功能,如创建、更新和删除节点、监视节点等。

Curator Framework:Curator 是 Netflix 提供的一个 ZooKeeper 客户端库,它是建立在 ZooKeeper API 之上的,提供了一些高级特性,例如重试、选举和分布式锁等。

Kazoo:Kazoo 是 Python 的一个 ZooKeeper 客户端,但它也有一个 Java 版本。它提供了一些高级特性,例如 ACL 和序列化节点等。

ZooKeeperManager:ZooKeeperManager 是一个轻量级的 ZooKeeper 客户端,它提供了一些简单的 API 来管理 ZooKeeper 节点。

Curator-X-Discovery:Curator-X-Discovery 是 Curator 的一个扩展,它提供了服务发现的功能。它允许客户端通过使用 ZooKeeper 上的节点来发现服务,而不需要硬编码任何 IP 地址或端口号。

Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?

ZooKeeper 的 watch 监听通知是一种一次性的触发机制,也就是说,一旦触发了一次通知,相应的 watch 监听器就会被移除,如果你需要继续监听节点的变化,需要重新注册 watch 监听器。

Zookeeper集群最少要几台机器,集群规则是怎样的?

ZooKeeper 集群至少需要三台机器,这是因为 ZooKeeper 使用了 Paxos 算法,需要在集群中进行选举操作,而选举需要至少三个节点才能进行。如果集群中只有两台机器,那么一旦其中一台机器出现故障,集群将无法正常工作。