如果subscribe方法被调用两次,groupId是否会丢失偏移位置?

时间:2018-12-04 16:25:18

标签: java apache-kafka kafka-consumer-api

我有一个KafkaConsumer,它调用特定主题(例如topic1)的subscription方法。在订阅了来自此topic1的消息后,我随后为另一个主题(例如topic2)调用了subscription方法。

最后,我调用commitSync-是否会同时提交topic1和topic2偏移量?

非常感谢Stackoverflow-ers:)

1 个答案:

答案 0 :(得分:1)

使用commitSync()commitAsync()方法提交偏移量时(不传递偏移量),将仅提交当前分配给使用者的分区的偏移量。

如果您以前订阅了另一个主题,则此信息不会保留在“使用者”中,并且属于先前主题的偏移也会丢失。

您要么需要在更改订阅之前进行提交,要么可以使用position()来获取更改之前的偏移量,并使用一种提交方法(例如{{3} })。