我在EC2上安装了Kafka软件。我的问题是从AWS外部连接到代理。这对我来说都很有用。
所以我可以启动代理,kafka-console-producer和consumer都工作(来自同一台服务器)。我有端口2181和9092向远程位置开放,朝向我想要使用生产者的地方。所以从我的开发(本地)机器..如果我做telnet 9092 - 它连接我。如果我尝试使用kafka-console-producer我会收到此错误。
[2017-03-09 15:04:44,971] ERROR Error when sending message to topic topic2 with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic2-0: 1521 ms has passed since batch creation plus linger time
我尝试了各种与server.properties文件的组合 - 使用密钥listeners
和advertised.listeners
。
我真的很感激一些帮助...
答案 0 :(得分:0)
这可能是由于AWS机器的公共主机名/ ip无法在AWS内部使用而引起的。如果是这样,你需要稍微捏一下。需要做两件事:
advertised.listeners
设置为私人地址然后确保始终只使用私有主机名。对于我来说,这是导致许多奇怪问题没有提供任何日志的根本原因。