首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MANUAL_IMMEDIATE模式下根本不确认kafka消息

在MANUAL_IMMEDIATE模式下根本不确认kafka消息
EN

Stack Overflow用户
提问于 2020-11-04 22:19:46
回答 1查看 385关注 0票数 0

我找不到任何与这个问题相关的文档,因此出现了这个问题。

ackMode设置为MANUAL_IMMEDIATE时,如果@KafkaListener方法根本不调用acknowledgement.acknowledge(),但成功退出该方法而没有任何异常,会发生什么情况?

我们在我们的一个消费者中遇到了这个问题,并丢失了消息(准确地说,偏移量已移动,因为我们从未调用过acknowledgement.acknowledge(),所以我们预计偏移量不会移动),这是预期的行为吗?

问题here似乎解决了同样的问题,但从来没有收到关于当没有异常时会发生什么的答案,因为我认为错误处理程序和恢复器只有在抛出异常时才会起作用,而不是在消息未确认的情况下。

EN

回答 1

Stack Overflow用户

发布于 2020-11-04 22:45:53

Kafka维护了两个指针:提交的偏移量和当前位置。

如果不调用acknowledge()并正常退出,提交的偏移量不会移动,但位置会移动;您将获得下一个poll()上的下一个记录。

如果您重新启动应用程序,您将获得重新传送的相同记录。

您还必须将Kafka消费者属性enable.auto.commmit设置为false - spring-kafka (从2.3开始)会自动执行此操作,除非您已显式设置它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64681806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档