我正在使用spring-kafka最新版本,并使用@KafkaListener。我正在使用BatchListener。在侦听消息列表的方法中,我只想在处理一批记录时才调用确认。但是,直到我重新启动应用程序,spring框架才会再次发送这些消息。因此,如果未处理记录,我在KafkaListenerEndpointRegistry上使用了stop()和start()方法,但我觉得这不是解决问题的好方法。有没有更好的方法来解决这个问题。
答案 0 :(得分:0)
请参见the documentation for the SeekToCurrentBatchErrorHandler
。
SeekToCurrentBatchErrorHandler
将每个分区都查找到该批次中每个分区中的第一个记录,以便重播整个批次。该错误处理程序不支持恢复,因为框架无法知道批处理中的哪个消息失败。