ZooKeeper 在错误的端口上启动

ZooKeeper Starting on Incorrect Port

我正在尝试从带有网络应用程序的 Java 代码启动动物园管理员服务器。但不知何故,我看到它试图在 Tomcat 端口而不是属性文件中提供的端口上启动。

我一直看到这个:

WARN | o.e.j.s.ServletContextHandler@269d82e2{/,null,UNAVAILABLE} contextPath ends with /*


WARN | Empty contextPath
StartZooKeeperServer EXCEPTION: org.apache.zookeeper.server.admin.AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands
org.apache.zookeeper.server.admin.AdminServer$AdminServerException: Problem starting AdminServer on address 0.0.0.0, port 8080 and command URL /commands
        at org.apache.zookeeper.server.admin.JettyAdminServer.start(JettyAdminServer.java:107)
        at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:138)

但是我在属性中将 clientPort 设置为 2182。

如果您需要更多信息,请告诉我。

问题不在于 Zookeeper 服务器,而在于管理服务器。

管理服务器默认绑定到端口 8080。但是,这个端口是在你的系统中分配的,所以会抛出这个异常。

您可以将以下 属性 添加到您的 zookeeper 配置中:

admin.serverPort=9876(8080 以外的任何端口)

如果您不需要此服务器,您甚至可以禁用它:

admin.enableServer=false

有关 Zookeeper 管理服务器的更多信息:

https://zookeeper.apache.org/doc/r3.6.1/zookeeperAdmin.html#sc_adminserver