Apache Kafka消费者使用“分区”选项消费消息,但不使用“组”选项

hc8w905p  于 2023-06-21  发布在  Apache
关注(0)|答案(1)|浏览(146)

我正在运行一个普通的Apache Kafka服务器(版本3.4.1),我想连接到Telegraf消费者。Telegraf [[inputs.kafka_consumer]]插件可以选择由Kafka“组”消费。当启动Telegraf时,我收到一条错误消息

[inputs.kafka_consumer] Error in plugin: consume: kafka server: Request was for a consumer group that is not coordinated by this broker

因此,我开始使用Kafka控制台工具研究我的设置,并发现在执行

./kafka-console-consumer.sh --bootstrap-server myserver:9092 --topic test --partition 0

并通过kafka-console-producer.sh发送消息,这些消息如预期的那样在控制台“消费者”窗口中弹出。
与此相反,当我跑步时

./kafka-console-consumer.sh --bootstrap-server myserver:9092 --topic test --group my-group

在“消费者”窗口中什么也不发生。此外,命令

./kafka-consumer-groups.sh --bootstrap-server myserver:9092 --list

什么也得不到。
我必须做些什么才能让使用“group”选项的使用者“看到”主题为“test”生成的消息?最后,我如何解决Telegraf错误?
更新:如果您提供一组Kafka控制台命令,可以可靠地为消费者组生成和消费消息,那就太好了。

8iwquhpp

8iwquhpp1#

我真的不能评论为什么Telegraf不工作,然而...
如果您的主题中有大量的分区,那么在您开始在控制台上看到消息之前可能需要很长时间。
因此,使用分区ID是正确的方法。但在命令行上需要有耐心。
出于兴趣,您等待控制台消费者的输出多长时间?
如果您需要知道分区ID,则需要使用自定义程序根据键来计算它。(你可以在Kafka github仓库中查看murmur 2源代码,并尝试创建一个简单的命令行工具来使用键计算分区id)。
但是,使用--group选项只会设置您的www.example.com示例的消费者组IDkafka-console-consumer.sh。如果您有其他消费者属于此消费者组,那么我认为应该进行一些重新平衡,因为一些分区将被移动到您的kafka-console-consumer.sh客户端。

相关问题