KAFKA Broker绑定外部IP

时间:2019-10-17 06:42:22

标签: google-cloud-platform

我有来自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的问题。使用相同的配置,它可以正常工作,因此似乎确实是特定于网络的问题。

1 个答案:

答案 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