当使用Confluent Kafka C#库使用消息时,我只想在完成处理当前消息时看到一条新消息(如果出现故障,我需要再次读取同一条消息)。换句话说,我不希望偏移发生改变,直到我明确告诉它改变为止。
要尝试实现此目的,我在配置中停用了自动提交功能(就像示例中一样):
{ "enable.auto.commit", false }
{ "auto.offset.reset", "smallest" }
然后我注释掉提交行:
while(true)
{
if (!consumer.Consume(out Message<string, string> msg, TimeSpan.FromMilliseconds(100)))
{
continue;
}
//I thought by removing this line, I would keep getting the same message (until I've processed the message and commited the offset)
//consumer.CommitAsync(msg).Result;
}
我的希望是,通过不提交,在调用Consume()时,我将不断收到相同的消息,但事实并非如此。即使我不提交,偏移量仍在变化,每次消费我都会收到新消息。
请清除我明显的误会?