Rdkafka 在处理消息后自动提交偏移量?

Rdkafka auto commit the offset after processing the message?

enable.auto.commit设置为true时,Rdkafka是否保证只commit已经被application处理过的offset?

假设在偏移量 204301 处有一条消息。 是否有可能在应用程序完成对此消息的处理之前提交了偏移量 204301?

它将提交从库中轮询的任何偏移量 - librdkafka 无法知道您是否已完成消息处理

如果您想至少保留一次语义 100% 时间以防失败,则必须手动提交。

最好的办法是轮询一些数据,处理它们(一个接一个或一批处理),一旦完成,提交偏移量,每 X 条消息或 Y 毫秒(不要提交每条消息,这会让经纪人无缘无故地忙碌)