如何让消费者组 A 获取消费者组 B 的偏移量但不影响 A 的承诺偏移量?
How to make consumer group A pick up offset of consumer group B but without affecting A's committed offset?
我创建了一个主题 "Item",它有 8 个分区。
另外,我有两个消费者群体A和B都在听这个话题。
消费者组 A 在每个分区上都有偏移量。
但是,我想将 消费者组 B 的 偏移设置为与 消费者 A 的偏移 相同,以便 消费者 B 可以从 A 离开的地方开始使用消息,而不影响 A 的提交偏移量。比如说,我有一个存储消费者 A 的偏移量的数据库,我希望 B 从那里消费。
让我添加一个用例:
A 组正在将消息连同偏移量一起插入数据库中的 table。但是,在某些时候,我将 table 复制到另一个数据库。但是我复制了这个 table 的快照(比如 10 分钟前的快照),所以一些交易插入
最后 10 分钟不存在。在这种情况下,我想使用 B 组来填充复制的 table 中的错过交易。所以我希望 B 组将其偏移量设置为存储在 table 中最后插入的项目上的偏移量。
有办法实现吗?如果我理解有误,请指正。
您可以使用 ConsumerGroup 命令工具手动更改 Consumer Group B 的偏移量。您可以在 Kafka 文档中找到一些信息 Managing Consumer Groups.
如果您打算重置特定的消费者组 ("consumerB"),您可以使用
> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --reset-offsets --group consumerB --topic Item --to-latest
每个单独的分区也有可用的选项。这样你就可以将偏移量设置为消费者 A 的特定偏移量。
我创建了一个主题 "Item",它有 8 个分区。
另外,我有两个消费者群体A和B都在听这个话题。 消费者组 A 在每个分区上都有偏移量。
但是,我想将 消费者组 B 的 偏移设置为与 消费者 A 的偏移 相同,以便 消费者 B 可以从 A 离开的地方开始使用消息,而不影响 A 的提交偏移量。比如说,我有一个存储消费者 A 的偏移量的数据库,我希望 B 从那里消费。
让我添加一个用例: A 组正在将消息连同偏移量一起插入数据库中的 table。但是,在某些时候,我将 table 复制到另一个数据库。但是我复制了这个 table 的快照(比如 10 分钟前的快照),所以一些交易插入 最后 10 分钟不存在。在这种情况下,我想使用 B 组来填充复制的 table 中的错过交易。所以我希望 B 组将其偏移量设置为存储在 table 中最后插入的项目上的偏移量。
有办法实现吗?如果我理解有误,请指正。
您可以使用 ConsumerGroup 命令工具手动更改 Consumer Group B 的偏移量。您可以在 Kafka 文档中找到一些信息 Managing Consumer Groups.
如果您打算重置特定的消费者组 ("consumerB"),您可以使用
> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --reset-offsets --group consumerB --topic Item --to-latest
每个单独的分区也有可用的选项。这样你就可以将偏移量设置为消费者 A 的特定偏移量。