在 NAT 后面使用 kafka 主题

在 NAT 后面使用 kafka 主题

我们有一个 kafka 集群,其中有 3 个代理和 3 个 zookeeper,它们运行良好。我们希望从只能访问 NAT 地址后面的 kafka 代理的消费者那里消费主题。您能分享一些关于如何使其工作的配置示例吗?现在,即使流程正常,消费者也可以连接,但随后它似乎对 ip/hosts 感到困惑,导致一些 io 超时,并且给定的 ip 是 kafka 正在监听的 ip,当然不是 NAT 地址。我读过这个操作指南:https://rmoff.net/2018/08/02/kafka-listeners-explained/但不太确定不同的场景是否适合我的设置...谢谢!

答案1

好的,我想我已经找到问题了。重要的是不要在 server.properties 中使用以下 IP 地址:advertised.listeners

let 表示你有:

listeners=INTERNAL://<ip>:19092,EXTERNAL://<ip>:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://<hostname>:19092,EXTERNAL://<hostname>:9092
inter.broker.listener.name=INTERNAL

应该从代理服务器的角度和消费者的角度进行解析。因此,如果在代理服务器中解析,在消费者端,如果它位于 nat 后面,则在 /etc/hosts 文件或 DNS 服务器中添加主机条目,以便指向代理服务器的 nap ip。由于消费者从代理集群获取列表,因此需要联系他们。通过使用名称而不是 ip,您可以确保无论它们在哪里都可以找到它们。

相关内容