apache-kafka - 卡夫卡 : how does consumer offsets work with dynamically created group ids?

标签 apache-kafka

在 Kafka 中,每个消费者组都由唯一的 group.id 属性表示。每个消费者组管理自己的偏移量(存储在 __consumer_offsets 主题中)。如果我总是使用动态生成的 group.id 值启动我的消费者服务,这个偏移量会发生什么?

这个新的消费者组是否总是从主题的开头读取,因为它没有偏移量,或者“auto.offset.reset”会生效吗?

最佳答案

如果每次应用程序启动时生成新的group.id,消费者将依赖auto.offset.reset来找到其起始位置。这是因为不会存储任何偏移量,因为这是一个新组。

通过 auto.offset.reset,您可以指示消费者从日志的最早开头开始或以最新结束.

请注意,在启动时,您还可以控制应用程序逻辑中的位置,并根据您想要的任何位置显式寻找任意位置。

一种相对常见的模式是从按时间得出的位置开始,例如查找 1 小时前或一天的开始。这可以使用 offsetsForTimes() 来完成和 seek() .

关于apache-kafka - 卡夫卡 : how does consumer offsets work with dynamically created group ids?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70425298/

相关文章:

database - 数据先放在Kafka还是Database?

java - 无法为 Kafka 流打开存储,因为状态无效

apache-kafka - 分别澄清 Kafka 控制台生产者和消费者中的 --broker-list 选项和 --bootstrap-server 选项

node.js - 卡夫卡-超时错误: Request timed out after 30000ms

apache-kafka - 如果您的消费者少于分区,会发生什么?

apache-kafka - 如何修复 0.10.2.1 kafka 中的 kafka 消费者滞后问题

scala - Kafka 生产者从本地 Linux 文件夹中读取数据

apache-kafka - kafka 连接失败时的 kafka-streams 警报

java - Spring Boot 中的 Kafka 配置类找不到 keystore 或信任库

apache-kafka - 防止kafka消费者长时间超时