如何更改Kafka经纪人列表ip

Jac*_*ack 7 apache-kafka

我有3个Kafka经纪人在一个孤立的网络区域运行,我的客户端无法直接连接它们,所以我必须使用VIP(虚拟IP)来连接经纪人.

例如:

我的经纪人的IP是:10.5.1.5, 10.5.1.6, 10.5.1.7,

我的VIP的IP是:200.100.1.5, 200.100.1.6, 200.100.1.7,他们一对一配对.

因此,当我指示引导列表为200.100.1.5,群集响应我混合的VIP和Broker ips,例如:10.5.1.5, 10.5.1.6, 200.100.1.5, 200.100.1.6 ...,然后连接失败,因为我的程序无法到达经纪人的IP,只能到达VIP.

我目前的配置如下,它同时响应IP和VIP:

listeners=INTERNAL://:9092,EXTERNAL_PLAINTEXT://:8080

advertised.listeners=EXTERNAL_PLAINTEXT://200.100.1.5:8080,INTERNAL://10.5.1.5:9092

listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL_PLAINTEXT:PLAINTEXT

inter.broker.listener.name=INTERNAL
Run Code Online (Sandbox Code Playgroud)

我怎样才能让卡夫卡只回复贵宾名单.

我有答案,可能是以下内容:

advertised.listeners=PLAINTEXT://200.100.1.5:8080
listeners=PLAINTEXT://10.5.1.5:9092
And remove the listener.security and inter.broker.
Run Code Online (Sandbox Code Playgroud)

Mic*_*son 5

您可以使用调用的代理设置advertised.listeners来告诉您的代理在对客户端的响应中包括其他IP /主机名。

advertised.listeners

如果侦听器与listenersconfig属性不同,则发布到ZooKeeper以便客户端使用的侦听器。在IaaS环境中,这可能需要与代理绑定的接口不同。如果未设置,listeners将使用的值。listeners与之不同的 是,广告0.0.0.0元地址无效。

在您的示例中,对于第一个经纪人,您可以拥有:

advertised.listeners=PLAINTEXT://200.100.1.5:9092
listeners=PLAINTEXT://10.5.1.5:9092
Run Code Online (Sandbox Code Playgroud)