1

我有很多服务连接到zookeeper,我希望服务A可以获取服务B的IP,当服务B连接到zookeeper时,有没有API可以做到这一点?还是我必须使用其他配置文件来记下所有服务的 IP?

4

1 回答 1

2

看看这是否解决了您的问题: http ://curator.apache.org/curator-x-discovery/

Zookeeper 不提供开箱即用的服务发现,但很容易自己实现。

您将无法直接从 Zookeeper API 获取其他连接的客户端(在您的情况下为服务)的 IP 地址。为了让其他服务连接到集群,每个服务必须在特定路径下单独创建一个临时 znode,例如 /services,并将必要的寻址和命名信息设置为 znode 的数据(IP、端口等)。这样,您可以列出该路径并发现活动服务,或查看 /services 路径以了解服务配置中的任何更改。

由于服务正在创建临时节点,因此一旦断开连接并且会话到期,它们将自动被删除。当然,一旦你开始做这样的事情,你会发现有很多小细节和设计决策你必须做出,因此已经提到的策展人秘诀。

于 2015-04-01T14:04:06.503 回答