【问题标题】:acknowledgment.nack() feature equivalent in Spring Boot 2.1.8Spring Boot 2.1.8 中的 acknowledgment.nack() 功能等效
【发布时间】:2021-09-23 23:38:12
【问题描述】:
您好,我正在使用来自Spring Boot 的@kafkaListener。我正在消费一批消息。我正在尝试使用Acknowledgment 中的nack() 方法,但看起来Spring Boot 2.1.8 不支持nack() 方法。
Spring Boot 2.1.8中是否有类似nack()的功能
我想为失败记录抛出异常并在下一个poll() 中重播剩余记录。我怎样才能在Spring Boot 2.1.8 中实现这一点。我可以使用SeekToCurrentBatchErrorHandler 吗?怎么样?
【问题讨论】:
标签:
spring-boot
apache-kafka
spring-kafka
【解决方案1】:
Spring Boot 2.1.x 已经停产将近一年; nack() 是在 spring-kafka 2.3.x 中引入的(Boot 2.2.x 附带,它也已报废)。上一个 2.1.x 版本是 2.1.18。
参见 github.com/spring-projects/spring-boot/wiki/Supported-Versions
如您所见,Boot 2.3.x 也即将结束生命周期。
在早期版本中没有 nack() 的等价物。有关 spring-kafka/spring-boot 版本的矩阵,请参见项目页面。
spring.io/projects/spring-kafka#overview
是的,您可以通过SeekToCurrentErrorHandler 提供类似的功能,但您确实应该升级到受支持的版本。