有没有一种方法可以使用静态ip而不是localhost来启动zookeeper服务器

h43kikqp  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(321)

我已经开始为一个新项目学习一些大数据工具,现在我正在学习Kafka和zookeeper。
我把它们都安装在我的本地机器上,我可以启动它们并开始生成和消费消息。现在,我想试着用两台机器,一台是Kafka经纪人,Zookepr和制作人,另一台是消费者。我们把它们叫做机器a和机器b。
机器a运行zookeeper服务器、代理和生产者。机器b运行一个耗电元件。据我所知,我应该能够设置消费者听一个主题从生产者在机器上,使用zookeeper。由于两台机器都在同一个网络(即我的本地家庭网络)上,我想我可以更改kafka broker server.properties以使用机器a的静态ip地址,然后让机器b上的使用者连接到它。
我的问题是,zookeeper在localhost上不断旋转,并且连接到0.0.0.0/0.0.0.0:2181,所以当我的代理尝试使用我的静态ip地址(即192.168.x.x)连接到它时,它超时了。我已经到处寻找解决方案,但我找不到任何东西,告诉我如何配置zookeeper服务器启动在一个不同的ip地址。
也许我对这些技术的理解是错误的,但我认为这是一件相当简单的事情。有人知道解决这个问题的方法吗?或者如果我完全错了,正确的方法是什么

y3bcpkx1

y3bcpkx11#

从zookeeper 3.3.0开始(请参阅高级配置):
clientportaddress:3.3.0中新增的:侦听客户端连接的地址(ipv4、ipv6或主机名);也就是说,客户端尝试连接到的地址。这是可选的,默认情况下,我们以这样一种方式绑定,即服务器上任何地址/接口/nic到clientport的任何连接都将被接受
所以你可以用:

clientPortAddress=127.0.0.1
watbbzwu

watbbzwu2#

zookeeper一直在本地主机上旋转,并连接到0.0.0.0/0.0.0:2181
嗯,那是绑定地址。
你还需要(最好)有一个zookeeper的静态ip,然后设置 zookeeper.connectserver.properties Kafka的文件到达另一台机器的外部地址。
从zookeeper配置文件中,您可以确保 myid 并在属性文件中有一行如下所示(不带双括号)

server.{{ myid }}={{ ip_address }}:2888:3888

在Kafka的文档中找不到这个,但它在zookeeper文档中
但是,如果Kafka和zookeeper在同一台机器上,这是没有必要的。
你的外部消费者应该 bootstrap.servers 属性和Kafkaip地址w/port 9092。
你的问题可能和我有关 advertised.listeners Kafka的背景。
例如,从 listeners=PLAINTEXT://:9092

相关问题