从本地计算机连接 Python 到 AWS EC2 上的 kafka

Connect Python to kafka on AWS EC2 from local machine

我正在尝试将我的 python 应用程序连接到 AWS EC2 上的 kafka 运行。我可以通过 telnet <ec2 ip> 9092 检查的终端连接到 ec2。我可以通过此连接但无法连接 python 应用程序。 即使我的 python 应用程序以 ec2 ip 地址没有任何错误启动,我也无法从我的 kafka 主题从 ec2 接收任何数据到本地机器。

当我将我的公共 IP 地址添加到:

advertised.listeners=PLAINTEXT://<local ip addrss>:9092 

带有 kafka-connect 的 Debezium 连接器不会启动,但如果不启用 advertised.listeners 它会工作。

我如何配置 kafka 和 kafka-connect 以便我可以在我的本地计算机上使用来自 ec2 实例的 kafka 主题?

您需要设置advertised.listeners为EC2PublicDNS/IP,重启代理,然后在监听端口打开VPC/防火墙连接。

Debezium 的 rest.advertised.listener 属性 与 Kafka 代理的不同,您不需要在本地计算机上设置它。

Python 和 Kafka Connect 应该共享相同的 bootstrap.server 协议

您可以使用 kafkacat -L -b <bootstrap>:9092

更好地测试您的听众