当我运行两个具有完全相同属性的 Kafka-console-consumers 实例(使用默认的一个 config/consumer.properties)时,我在两个实例上都收到相同的消息。
./bin/kafka-console-consumer.sh --bootstrap-server :9092 --topic test1
Run Code Online (Sandbox Code Playgroud)
如果两个实例具有相同的消费者组 ID,那么 Kafka 不应该只向其中一个消费者发送给定的消息吗?如何将它们作为一个消费者群体运行?
从 kafka 文档我发现了这个
当没有提供 group.id 时,控制台使用者的 enable.auto.commit 属性的默认值现在设置为 false。这是为了避免污染消费者协调器缓存,因为其他消费者不太可能使用自动生成的组。
但这里有诀窍,使用此命令列出所有主题的所有消费者组,正如您所说,我已经打开了四个控制台消费者,我想检查从该主题消费的消费者组列表
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
Run Code Online (Sandbox Code Playgroud)
每个控制台消费者都以不同的组 ID 开始,这就是总是从开始添加此属性开始消费的原因 ( --from-beginning)
ups.sh --bootstrap-server localhost:9092 --list
Note: This will not show information about old Zookeeper-based consumers.
console-consumer-66835
console-consumer-38647
console-consumer-18983
console-consumer-18365
console-consumer-96734
Run Code Online (Sandbox Code Playgroud)
好的,为控制台消费者设置 group.id 的最简单方法
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning --consumer-property group.id=test1
Run Code Online (Sandbox Code Playgroud)
阅读管理消费者组。
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |