如果 Spring kafka consumer 自动提交 false 和 MANUAL_IMMEDIATE ack,抛出异常时会发生什么

In case of Spring kafka consumer with auto commit false and MANUAL_IMMEDIATE ack, what happens when exception are thrown

如果未在消费者中配置 SeekToCurrentErrorHandler,如果我将 max.poll.records 设置为 1,并且当消息处理失败并且我不确认消息时,容器的默认行为是什么.阅读文档后,不清楚 SeekToCurrentErrorHandler 是否接管并最多重试 9 次,然后记录消息并提交偏移量并转到下一条记录。如果我们实施 SeekToCurrentErrorHandler 会发生这种情况,还是即使我们不实施它也会发生。我的目标是不手动处理处理失败,无限期地重新交付它,如果我可以对滞后保持警惕,如果滞后超过特定值,那么我会手动干预。

您可以将 SeekToCurrentErrorHandler 配置为 无限 BackOff:

/**
 * Construct an instance with the default recoverer which simply logs the record after
 * the backOff returns STOP for a topic/partition/offset.
 * @param backOff the {@link BackOff}.
 * @since 2.3
 */
public SeekToCurrentErrorHandler(BackOff backOff) {

然后new FixedBackOff(1000, FixedBackOff.UNLIMITED_ATTEMPTS)