我有一个KafkaConsumer,它调用特定主题(例如topic1)的subscription方法。在订阅了来自此topic1的消息后,我随后为另一个主题(例如topic2)调用了subscription方法。
最后,我调用commitSync-是否会同时提交topic1和topic2偏移量?
非常感谢Stackoverflow-ers:)
答案 0 :(得分:1)
使用commitSync()
或commitAsync()
方法提交偏移量时(不传递偏移量),将仅提交当前分配给使用者的分区的偏移量。
如果您以前订阅了另一个主题,则此信息不会保留在“使用者”中,并且属于先前主题的偏移也会丢失。
您要么需要在更改订阅之前进行提交,要么可以使用position()
来获取更改之前的偏移量,并使用一种提交方法(例如{{3} })。