首页 文章

无法从本地计算机向AWS EC2上部署的Confluent Kafka生成事件

提问于
浏览
2

我正在尝试从外部客户端(我的笔记本电脑)连接到我在ec2机器上运行的Kafka集群中的代理 . 当我尝试从本地计算机连接时,出现以下错误:

$ ./kafka-console-producer --broker-list AWS.PRIV.ATE.IP:9092 --topic test
>hi
>[2018-09-20 13:28:53,952] ERROR Error when sending message to topic test with key: null, value: 2 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for test-0: 1519 ms has passed since batch creation plus linger time

该主题存在,因为如果我运行(从本地机器)

$ ./kafka-topics --list --zookeeper AWS.PRIV.ATE.IP:2181
__confluent.support.metrics
__consumer_offsets
_schemas
connect-configs
connect-offsets
connect-status
test

群集配置来自Confluent的AWS快速入门模板:https://github.com/aws-quickstart/quickstart-confluent-kafka/blob/master/templates/confluent-kafka.template,我正在运行开源版本 .

我的本地计算机可以看到三个代理ec2实例,我通过停止Kafka代理,在端口9092上启动一个简单的HTTP服务器,并使用ec2实例的内部IP地址成功地使用该服务器来验证 .

如果我 ssh 进入其中一个代理实例,我可以成功生成和使用集群中的消息 . 我对模板提供的开箱即用配置进行的唯一更新是在每台机器上的 server.properties 中更改 listeners=PLAINTEXT://ec2-AWS-PUB-LIC-IP.compute-1.amazonaws.com:9092 ,然后重新启动kafka服务器 .

如有必要,我可以提供更多配置或调试信息 . 相信问题是关于IP地址可发现性/可见性的问题,但我不完全确定是什么 .

1 回答

相关问题