Apache kafka 卡夫卡抵销管理

Apache kafka 卡夫卡抵销管理,apache-kafka,kafka-consumer-api,confluent-platform,Apache Kafka,Kafka Consumer Api,Confluent Platform,我们正在使用卡夫卡0.10。。。当enable.auto.commit为TRUE时,我在网上(和文档中)看到一些关于如何在kafka中管理偏移量的冲突信息。检索消息的poll()方法是否也按配置的间隔处理提交 如果我在一个单线程应用程序中从轮询中检索消息,在同一线程中处理消息直到完成(包括处理错误),这意味着在处理完成之前不会再次调用poll(),那么我认为丢失消息并不可怕,对吗?这仅在poll()在后续调用中尝试提交时有效(当然,如果auto.commit.interval.ms已通过)。如果

我们正在使用卡夫卡0.10。。。当enable.auto.commit为TRUE时,我在网上(和文档中)看到一些关于如何在kafka中管理偏移量的冲突信息。检索消息的poll()方法是否也按配置的间隔处理提交

如果我在一个单线程应用程序中从轮询中检索消息,在同一线程中处理消息直到完成(包括处理错误),这意味着在处理完成之前不会再次调用poll(),那么我认为丢失消息并不可怕,对吗?这仅在poll()在后续调用中尝试提交时有效(当然,如果auto.commit.interval.ms已通过)。如果在收到消息后(在我的应用程序处理消息之前)立即完成提交,这将不适用于我们

这一点很重要,因为我想确定,如果使用自动提交策略,我们不会丢失消息。重复的消息对我们来说是可以容忍的,我们只是不能容忍丢失的数据

谢谢你的澄清

检索消息的poll()方法是否也按配置的间隔处理提交

对。(如果
启用.auto.commit=true

如果我在一个单线程应用程序中从轮询中检索消息,在同一线程中处理消息直到完成(包括处理错误),这意味着在处理完成之前不会再次调用poll(),那么我认为丢失消息并不可怕,对吗

这仅在poll()在后续调用中尝试提交时有效(当然,如果auto.commit.interval.ms已通过)

正是这样做的

有关更多详细信息,请参见此处: