zookeeper的3888在localhost上侦听,如果使用主机名而不是ip

drnojrws  于 2021-06-05  发布在  Kafka
关注(0)|答案(3)|浏览(582)

如果在zookepeer的配置中,我将服务器设置为:

clientPort=2181
server.1=kafka-test-01:2888:3888
server.2=kafka-test-02:2888:3888
server.3=kafka-test-03:2888:3888

哪里 kafka-test-0X 是一个示例,并且可以从任何示例解析域,我注意到zookeeper的端口正在监听127.0.1.1。事实上,由于无法通过3888进行通信,“leader port”2888也没有监听。

tcp6       0      0 127.0.1.1:3888          :::*                    LISTEN      26951/java

但是,如果我使用的不是主机名,而是实际的ip,例如:

server.1=192.168.0.11:2888:3888
server.2=192.168.0.12:2888:3888
server.3=192.168.0.13:2888:3888

它在每一个ip上都可以正常监听,并且可以从一个ip连接到另一个ip。

tcp6       0      0 192.168.0.13:2888       :::*                    LISTEN      26926/java
tcp6       0      0 192.168.0.13:3888       :::*                    LISTEN      26926/java

我见过很多使用主机名的例子,甚至官方文档也使用主机名,那么原因可能是什么呢?

yhived7q

yhived7q1#

正如其他人提到的,这可能是因为您的主机名解析为环回地址,而不是真正的IP。

nbnkbykc

nbnkbykc2#

这可能是因为在您的/etc/hosts中,您的主机名可能与127.0.0.1相对,请按如下注解注解#127.0.1.1

btxsgosb

btxsgosb3#

您需要从/etc/hosts文件中删除以下条目

127.0.1.1 kafka-test-01

然后重新启动zookeeper群集。
在zookeeper重启之前

]# netstat -tunlp | grep 3888
tcp6       0      0 127.0.1.1:3888          :::*                    LISTEN      23512/java

zookeeper重启后

netstat -tunlp | grep 3888
tcp6       0      0 <SERVER_IP>:3888        :::*                    LISTEN      30103/java

相关问题