我们正在使用 Kafka 0.10... 我在网上(和文档中)看到一些关于当 enable.auto.commit 为 TRUE 时如何在 kafka 中管理偏移量的相互矛盾的信息。检索消息的同一个 poll() 方法是否也以配置的时间间隔处理提交?
如果我在单线程应用程序中从 poll 检索消息,在 SAME 线程中处理消息以完成(包括处理错误),这意味着 poll() 在我的处理完成之前不会再次被调用,那么我认为没有恐惧在丢失消息时,对吗?这仅在 poll() 在随后的调用中尝试提交时才有效(当然,如果 auto.commit.interval.ms 已通过)。如果在收到消息后立即提交(在我的应用程序处理消息之前),这对我们不起作用......
这很重要,因为我想确定如果我们使用自动提交策略,我们不会丢失消息。重复消息对我们来说是可以容忍的,我们只是无法容忍丢失的数据。
感谢您的澄清!