Apache zookeeper 如何将客户端与zookeeper服务器关联/连接?

Apache zookeeper 如何将客户端与zookeeper服务器关联/连接?,apache-zookeeper,Apache Zookeeper,我已经学习了动物园管理员的基本概念,并做了一个示例项目,但我只使用了本地pc或一台计算机 我了解zookeeper,但仍然对客户端如何连接到zookeeper服务器(如果它们不在一台计算机中)感到困惑?例如,如果我们在我自己的计算机上启动zookeeper服务器,我们可以使用connect()如connect 2181连接到zookeeper服务器,这是有意义的,因为它们都在一台计算机中,在较低的层中有一些关联。但是,如果zookeeper服务器和客户端被分成两台计算机怎么办?我们怎么处理呢 我

我已经学习了动物园管理员的基本概念,并做了一个示例项目,但我只使用了本地pc或一台计算机


我了解zookeeper,但仍然对客户端如何连接到zookeeper服务器(如果它们不在一台计算机中)感到困惑?例如,如果我们在我自己的计算机上启动zookeeper服务器,我们可以使用connect()如connect 2181连接到zookeeper服务器,这是有意义的,因为它们都在一台计算机中,在较低的层中有一些关联。但是,如果zookeeper服务器和客户端被分成两台计算机怎么办?我们怎么处理呢

我不确定您对客户端使用的是什么语言,因此这必须是一个通用的答案

客户端和服务器通过TCP进行通信。这要求客户端只知道服务器的主机和端口。通常,ZooKeeper服务器绑定到某些专用网络接口。例如,zoo.conf配置文件可能包含以下行:

clientPort=2181
server.1=123.456.789.1:2888:3888
服务器的第一部分。1第123.456.789.1节是ZooKeeper服务器将绑定到的主机。只要该主机不是环回接口(即localhost或127.0.0.1),您就应该能够从客户端端口2181上的另一台计算机连接到该主机。例如,在Java中,我创建了一个指向该主机和端口的新ZkClient:

ZkClient client = new ZkClient("123.456.789.1:2181"); 

谢谢回答。这更有意义。它就像我们在计算机上部署了zookeeper服务器,并运行它(同时配置)。然后我们启动另一台计算机B,用Java创建一个客户端程序,用端口和主机将它连接到a?对吗?那么节点和客户端之间的关系呢?zookeeper可以监视/监视节点的状态,就像监视将触发的节点死亡一样。我们是在计算机B或A中创建节点,还是同时在两者中创建节点?他们如何互动?太多了!!客户端似乎总是与java api断开连接,如何使其保持活动状态,以便我可以接收分布式监视程序服务。。!如何在专用网络上启动zookeeper?我可以在专用网络上运行它而不是将其公开吗?