我们使用 spring Kafka 3.x 并使用 DefaultErrorHandler。 在此处理程序中,我们检查异常是否可重试,然后重试直到 Integer.maxValue,否则将消息放入 DLT 中。 整个想法是对某些异常进行无限次重试,对少数异常进行分布式账本技术。 对于无限重试,我们使用指数退避。 在某些时候,指数回退将超过最大轮询超时。 我想了解当它超过最大轮询间隔时它将如何表现。
根据我的理解,这是一次有状态重试,因为 STCEH 在 Spring Kafka 3.x 中已弃用”
有人可以指导我吗?
您需要确保指数回退永远不会超过
max.poll.interval.ms
;否则将强制重新平衡。
即使使用旧的有状态重试机制,情况也是如此;在添加之前,延迟的总和不能超过间隔。
现在(使用任一机制),只有最大延迟必须小于间隔。