zookeeper 如何知道zookeeper客户端主机/端口

问题描述

我正在尝试了解 Apache zookeeper 的基础知识。 Zookeeper 服务器(独立/仲裁)在主机/端口上运行,如下所示,zookeeper 客户端会提及详细信息。

创建 ZooKeeper 句柄的构造函数通常如下所示:

ZooKeeper(    String connectString,int sessionTimeout,Watcher watcher) 

其中:connectString 包含 ZooKeeper 服务器的主机名和端口。

zookeeper 服务器通知客户端集群中的状态变化。我的问题是我无法从教程中弄清楚zookeeper服务器如何知道zookeeper客户端的IP地址和端口号。如果有人可以提供 Zookeeper API 的 Java 片段,其中指定了此信息,那就太好了。

解决方法

zookeeper 服务器通知客户端集群中的状态变化。

这发生在客户端与服务器之间的现有连接中。服务器不会“联系”到当前未连接(此时可能)的客户端。这意味着客户端需要至少有一个仍然准确的服务器地址才能进行连接。然后它将被告知所有其他人的位置。