从本地计算机连接 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
更好地测试您的听众
我正在尝试将我的 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