micronaut - Micronaut @KafkaListener 出错时丢弃轮询循环中的剩余消息
问题描述
使用@KafkaListener注解消费消息时,如果抛出异常,则轮询循环中的剩余消息将被忽略。
这意味着要实现“至少一次”消息处理语义,需要在监听器方法中捕获所有异常。
KafkaConsumerProcessor 的这一行是轮询循环出错的地方。(这个类在过去的一个月里被重构了,但问题仍然存在)
也许 Micronaut Kafka 团队中的某个人可以告诉我这是不是故意的?我在提出 GitHub 问题和这里的问题之间纠结!我认为大多数使用侦听器的人都希望轮询循环中的下一条消息在错误时被处理。
解决方案
推荐阅读
- node.js - Cloud Functions 和 Cloud Firestore 用户关联函数
- python - 在 Python 中创建嵌套字典的最有效方法是什么?
- javascript - 如果 state 为 true 并且 localStorage 为 true 则显示警报,如果浏览器刷新则删除 localStorage
- oracle - 如何将日期硬编码到 SSIS 中的 Oracle 查询中
- javascript - 通过国家名称javascript获取国家代码?
- python - for 循环不会停止
- python - openCV:各种尺寸图像的翘曲透视图
- ios - 静默推送通知在 iOS 14 上无法正常工作
- reactjs - ReactJs:单击服务条款链接时如何防止表单提交?
- azure-pipelines - 购买了两个 MS 托管的并行作业,但构建仍然超时 60 分钟