【发布时间】:2018-01-20 12:21:59
【问题描述】:
我在远程机器上设置了 kafka 和 zookeeper。在那台机器上,我可以看到下面使用官方网站上的测试方法工作。
> bin/kafka-console-producer.sh --broker-list localhost:9092 --topic listings-incoming
This is a message
This is another message
> bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --listings-incoming --from-beginning
This is a message
This is another message
但是当我使用本地消费者脚本时,它不起作用:
bin/kafka-console-consumer.sh —bootstrap-server X.X.X.X:9092 —listings-incoming —from-beginning —consumer-property group.id=group2
没有看到消息显示,但显示的是:
[2017-08-11 14:39:56,425] 警告自动提交偏移量 {listings-incoming-4=OffsetAndMetadata{offset=0, metadata=''}, listings-incoming-2=OffsetAndMetadata{offset= 0,元数据=''},listings-incoming-3=OffsetAndMetadata{offset=0,metadata=''},listings-incoming-0=OffsetAndMetadata{offset=0,metadata=''},listings-incoming-1=组 group1 的 OffsetAndMetadata{offset=0, metadata=''}} 失败:无法完成提交,因为组已经重新平衡并将分区分配给另一个成员。这意味着后续调用 poll() 之间的时间比配置的 max.poll.interval.ms 长,这通常意味着轮询循环花费了太多时间处理消息。您可以通过增加会话超时或通过使用 max.poll.records 减少 poll() 中返回的批处理的最大大小来解决此问题。 (org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)
**********************更新**********************
我的 zookeeper 和 kafka 在同一台机器上运行,现在我在 Advertisementd.listeners 上的配置是这样的:
advertised.listeners=PLAINTEXT://the.machine.ip.address:9092
我尝试将其更改为:
advertised.listeners=PLAINTEXT://my.client.ip.address:9092
然后运行客户端消费者脚本,它给出了错误:
[2017-08-11 15:49:01,591] WARN 获取元数据时出错 相关 ID 3:{listings-incoming=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) [2017-08-11 15:49:22,106] 警告引导代理 10.161.128.238:9092 已断开连接 (org.apache.kafka.clients.NetworkClient) [2017-08-11 15:49:22,232] WARN 获取相关 id 为 7 的元数据时出错: {listings-incoming=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) [2017-08-11 15:49:22,340] WARN 获取相关 id 为 8 的元数据时出错: {listings-incoming=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) [2017-08-11 15:49:40,453] 警告引导代理 10.161.128.238:9092 已断开连接 (org.apache.kafka.clients.NetworkClient) [2017-08-11 15:49:40,531] WARN 获取相关 id 为 12 的元数据时出错: {listings-incoming=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
【问题讨论】:
-
检查您的主机名在
/etc/hosts中是否配置正确,然后重试。
标签: apache-kafka kafka-consumer-api spring-kafka