Kafka客户端无法接收消息

flmtquvp  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(519)

我在一台远程机器上安装了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:56425]警告自动提交偏移量{listings-incoming-4=offsetandmetadata{offset=0,metadata='},listings-incoming-2=offsetandmetadata{offset=0,metadata='},listings-incoming-3=offsetandmetadata{offset=0,metadata='},listings-incoming-0=offsetandmetadata{offset=0,metadata='},listings-incoming-1=offsetandmetadata{offset=0,组group1的metadata=''}}}失败:无法完成提交,因为该组已重新平衡并将分区分配给另一个成员。这意味着对poll()的后续调用之间的时间间隔长于配置的max.poll.interval.ms,这通常意味着poll循环在消息处理上花费了太多时间。您可以通过增加会话超时或使用max.poll.records减少poll()中返回的最大批大小来解决此问题(org.apache.kafka.clients.consumer.internals.consumercoordinator)

更新*****

我的zookeeper和kafka在同一台机器上运行,现在我在Adverted.listeners上的配置如下:

advertised.listeners=PLAINTEXT://the.machine.ip.address:9092

我试着把它改成:

advertised.listeners=PLAINTEXT://my.client.ip.address:9092

然后运行客户端使用者脚本,它给出错误:
[2017-08-11 15:49:01591]获取相关id为3的元数据时出现警告错误:{listings incoming=leader\u not\u available}(org.apache.kafka.clients.networkclient)[2017-08-11 15:49:22106]警告引导代理10.161.128.238:9092已断开连接(org.apache.kafka.clients.networkclient)[2017-08-11 15:49:22,232]获取相关id为7的元数据时出现警告错误:{listings incoming=leader\u not\u available}(org.apache.kafka.clients.networkclient)[2017-08-11 15:49:22340]获取相关id为8的元数据时出现警告错误:{listings incoming=leader\u not\u 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:40531]获取相关id为12的元数据时警告错误:{listings incoming=leader\u not\u available}(org.apache.kafka.clients.networkclient)

dsf9zpds

dsf9zpds1#

您可能尚未配置 advertised.listeners 在brokers server.properties文件中。
从https://kafka.apache.org/documentation/ advertised.listeners 如果与上面的侦听器不同,则将侦听器发布到zookeeper以供客户端使用。在iaas环境中,这可能需要与代理绑定到的接口不同。如果未设置,则 listeners 将使用。
在同一份文件中 listeners 侦听器列表-我们将侦听的URI和侦听器名称的逗号分隔列表。如果侦听器名称不是安全协议,则还必须设置listener.security.protocol.map。将主机名指定为0.0.0.0以绑定到所有接口。将主机名保留为空以绑定到默认接口。法律听众列表示例: PLAINTEXT://myhost:9092,SSL://:9091 CLIENT://0.0.0.0:9092,REPLICATION://localhost:9093 所以如果没有设置advered.listeners,并且listeners只是在侦听localhost:9092 or 127.0.0.1:9092或0.0.0.0:9092然后,当客户端向引导服务器发出元数据请求时,它们将被告知连接到localhost。当客户机实际上与代理在同一台计算机上运行时,这种方法就可以工作了,但当您远程连接时,它将失败。
你应该设置 advertised.listeners 是运行代理的主机的完全限定域名或公共ip地址。
例如
播发的.listeners=plaintext://kafkabrokerhostname.confluent.io:9092
或者
播发的.listeners=plaintext://192.168.1.101:9092

相关问题