卡夫卡抵消管理

问题描述 投票:2回答:1

我们正在使用Kafka 0.10 ......我在网上(以及文档中)看到一些有关如何在enable.auto.commit为TRUE时在kafka中管理偏移的相互矛盾的信息。检索消息的相同poll()方法是否也以配置的间隔处理提交?

如果我在单线程应用程序中从poll中检索消息,则在SAME线程中处理消息以完成(包括处理错误),这意味着在我的处理完成之后不会再次调用poll(),然后我认为没有恐惧丢失消息,对吗?这仅在poll()在后续调用时尝试提交时才有效(当然,如果auto.commit.interval.ms已通过)。如果在收到消息后立即完成提交(在我的应用处理消息之前),这对我们不起作用....

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

谢谢你的澄清!

apache-kafka kafka-consumer-api confluent
1个回答
4
投票

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

是。 (如果enable.auto.commit=true。)

如果我在单线程应用程序中从poll中检索消息,则在SAME线程中处理消息以完成(包括处理错误),这意味着在我的处理完成之后不会再次调用poll(),然后我认为没有恐惧丢失消息,对吗?

是。

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

这正是它的完成方式。

有关详细信息,请参见此处:http://docs.confluent.io/current/clients/consumer.html

© www.soinside.com 2019 - 2024. All rights reserved.