max.poll.records>1时Spring-Kafka监听器异常重试范围咨询
Spring-Kafka 异常重试范围说明
结合你使用的spring-boot 3.0.12、kafka client 3.5.1版本,以及DefaultErrorHandler与DeadLetterPublishingRecoverer的组合,结论如下:
- 仅会重试抛出异常的单条记录,不会重试整个批次
DefaultErrorHandler默认采用单条记录级别的错误处理逻辑:当监听器处理某条记录抛出异常时,框架会将这条失败记录从批次中单独隔离出来,仅针对该条记录进行重试,批次中其他未出错的记录会被正常提交偏移量,不会被重复处理。- 当该条记录的重试次数耗尽后,
DeadLetterPublishingRecoverer会将这条失败记录发送到配置好的死信队列,整个批次的其余记录不受影响,流程正常推进。
补充:若需切换为批次级重试,需调整
DefaultErrorHandler的setAckAfterHandle(false)配置,同时结合批次型监听器的相关设置,但这并非默认行为。
内容的提问来源于stack exchange,提问作者tuk
相关产品推荐
相关产品推荐

