如何在重新平衡完成后为消费者使用相同的偏移量



我是卡夫卡的初学者,试图理解一个假设的案例。如果我有

具有使用者C1的分区P1(使用者grp cg1(=将偏移量提交为30

以及具有使用者C2的分区P2(使用者grp cg1(=将偏移量提交为40

现在重新平衡发生了,我希望我的消费者组在那里向新分区提交偏移,比如:

具有使用者C2的分区P1(使用者grp cg1(=将偏移量提交为40

P2与使用者C1(使用者grp cg1(=提交偏移量为30

如何实现这一点?我可以在这里使用ConsumerReblancerListener吗?或者有其他方法吗?

感谢

消费者"C1〃;以及";C2";与偏移值没有关系。更具体地说,任务的顺序没有保证,因此按编号引用它们是不清楚的。

当团队重新平衡时,你就会陷入团队为这些补偿所承诺的任何补偿。分区高水印是唯一的。如果分区1具有偏移量40,则不能保证分区2具有偏移量。

您必须手动跟踪";消费者名称/ID";在Kafka之外,然后使用seek方法让特定的消费者在分区分配发生后以特定的偏移量启动。

理想情况下,你不要这样设计你的消费者。您将把分区2倒带10个偏移量,然后重新处理这些数据。同时,跳过分区1的10个偏移(可能还不存在(。。。

最新更新