我们正在使用 Kafka 0.10...我在网上(和文档中)看到了一些相互矛盾的信息,这些信息涉及当enable.auto.commit 为 TRUE 时如何在 kafka 中管理偏移量。检索消息的同一个 poll() 方法是否也按配置的时间间隔处理提交?
如果我在单线程应用程序中从 poll 检索消息,在同一线程中处理消息直至完成(包括处理错误),这意味着在处理完成之前不会再次调用 poll() ,那么我认为没有恐惧丢失消息,对吗?仅当 poll() 在后续调用中尝试提交时(当然,如果 auto.commit.interval.ms 已通过),这才有效。如果在收到消息后立即完成提交(在我的应用程序处理消息之前),这对我们不起作用......
这很重要,因为我想确定如果我们使用自动提交策略,我们不会丢失消息。重复的消息对我们来说是可以容忍的,但我们不能容忍丢失的数据。
感谢您的澄清!
检索消息的同一个 poll() 方法是否也按配置的时间间隔处理提交?
是的。 (如果enable.auto.commit=true
.)
如果我在单线程应用程序中从 poll 检索消息,在同一线程中处理消息直至完成(包括处理错误),这意味着在处理完成之前不会再次调用 poll() ,那么我认为没有恐惧丢失消息,对吗?
Yes.
仅当 poll() 在后续调用中尝试提交时才有效(当然,如果 auto.commit.interval.ms 已通过)
这正是它的完成方式。
请参阅此处了解更多详细信息:http://docs.confluence.io/current/clients/consumer.html http://docs.confluent.io/current/clients/consumer.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)