首页 > 解决方案 > Micronaut @KafkaListener 出错时丢弃轮询循环中的剩余消息

问题描述

使用@KafkaListener注解消费消息时,如果抛出异常,则轮询循环中的剩余消息将被忽略。

这意味着要实现“至少一次”消息处理语义,需要在监听器方法中捕获所有异常。

KafkaConsumerProcessor 的这一行是轮询循环出错的地方。(这个类在过去的一个月里被重构了,但问题仍然存在)

也许 Micronaut Kafka 团队中的某个人可以告诉我这是不是故意的?我在提出 GitHub 问题和这里的问题之间纠结!我认为大多数使用侦听器的人都希望轮询循环中的下一条消息在错误时被处理。

标签: micronautmicronaut-kafka

解决方案


推荐阅读