我有来自https://hub.docker.com/r/confluentinc/cp-kafka/的Kafka码头工人形象 然后在Google云上进行设置我有一个外部IP,并且我已经打开了我用于代理的端口,但是代理无法连接到google外部IP,因为这就是Google的工作方式,但是当我尝试连接到0.0.0.0时,它也无法连接对此问题进行了解释:https://issues.apache.org/jira/browse/KAFKA-4116
我尝试附加到内部IP,但是从外部无法访问。我必须创建转发规则吗?我没有在其他云提供商上设置kafka的问题。使用相同的配置,它可以正常工作,因此似乎确实是特定于网络的问题。
答案 0 :(得分:1)
您不能将其绑定到0.0.0.0 IP,因为它不可路由,因为Zookeeper会使用该IP来识别代理。 https://issues.apache.org/jira/browse/KAFKA-4116
这里有一些讨论本教程说明了如何针对AWS:https://rmoff.net/2018/08/02/kafka-listeners-explained/
您必须定义多个侦听器和公告的侦听器:
选项2-外部地址无法在本地解析
您将需要为Kafka配置两个侦听器:
1- AWS网络(VPC)内部的通信。这可能是经纪人之间的通信。 (即经纪人之间),以及在 VPC(例如Kafka Connect)或第三方客户端或生产者。对于 这些通讯,我们需要使用EC2机器的内部IP(或 主机名(如果已配置DNS)。
2-外部AWS流量。。这可能是测试来自 笔记本电脑,或仅来自非Amazon托管的计算机。在这两种情况下 需要使用实例的外部IP(如果是DNS,则为主机名) 已配置。)
示例:
listeners=INTERNAL://0.0.0.0:19092,EXTERNAL://0.0.0.0:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://ip-172-31-18-160.us-west-2.compute.internal:19092,EXTERNAL://ec2-54-191-84-122.us-west-2.compute.amazonaws.com:9092
inter.broker.listener.name=INTERNAL