kafka 消费者组 ID 无法按预期工作

Posted

技术标签:

【中文标题】kafka 消费者组 ID 无法按预期工作【英文标题】:kafka consumer group id does not work as expected 【发布时间】:2019-04-28 01:05:01 【问题描述】:

我是 apache Kafka 的新人。当我通过http://kafka.apache.org/quickstart 使用最新版本的 kafka_2.12-2.2.0 进行快速入门说明时。我遇到了问题,无法自己解决。

问题是,在我的笔记本电脑上,我创建了 3 个代理来模拟集群情况。

每个代理都有自己的服务器属性文件。我对每个服务器属性文件进行了以下更改,并保留其他默认值。

broker.id=1      (server2: broker.id=2;  server3: broker.id=3)

listeners=PLAINTEXT://127.0.0.1:9092   (server2: 127.0.0.1:9023;  server3: 127.0.0.1:9004) 

log.dirs=/tmp/kafka-logs   (server2: /tmp/kafka-logs-2; server3: /tmp/kafka-logs-3)

num.partitions=3   (for all servers)

offsets.topic.replication.factor=3  (for all servers)

在我启动 ZK 和那 3 个代理之后,我(可以)在任何代理上创建一个包含 3 个分区的主题“TestTopic”

bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 3 --topic TestTopic

然后我使用以下命令在同一组“rickygroup”中启动 3 个消费者。

//消费者一号

bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic TestTopic —group.id rickygroup —group.name rickygroup

//消费者二

bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9093 --from-beginning --topic TestTopic —group.id rickygroup —group.name rickygroup

//消费三

bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9094 --from-beginning --topic TestTopic —group.id rickygroup —group.name rickygroup

现在,我使用另一个终端发布有关主题“TestTopic”的一些消息。问题是,以上 3 个消费者都将获得完全相同的消息。我的理解是 3 个消费者应该无差别地消费所有消息,而不是相同。否则,消费者组显示重复消费而不是余额消费。

我对消费群体的概念有什么误解吗?还是我在这里做错了什么?

【问题讨论】:

【参考方案1】:

控制台使用者使用--group(带有两个破折号),而不是-group.id 和/或-group.name,它们不是解析选项。

【讨论】:

是的,你是对的。它应该是- 而不是- 并且应该是--group。不幸的是它没有引发异常,所以我没有检查命令并且昨天浪费了一些时间。谢谢。

以上是关于kafka 消费者组 ID 无法按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

Kafka 消费者默认组 ID

Kafka快速入门(Kafka消费者)

烧瓶 gevent 线程卡在 kafka 消费者上

如果消费者更多是分区,kafka 消费者如何工作

五 通过命令行了解 Kafka消费者组

Kafka -- 消费组到底是什么?