【问题标题】:Cannot produce events to Confluent Kafka deployed on AWS EC2 from local machine无法从本地机器向部署在 AWS EC2 上的 Confluent Kafka 生成事件
【发布时间】:2018-09-24 01:30:29
【问题描述】:

我正在尝试从外部客户端(我的笔记本电脑)连接到我在 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 地址成功curl该服务器来验证这一点.

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

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

【问题讨论】:

    标签: amazon-ec2 apache-kafka


    【解决方案1】:

    您还需要设置advertised.listeners

    详情请参阅https://rmoff.net/2018/08/02/kafka-listeners-explained/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 2020-03-19
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多