在卡夫卡消费者中所有以前的重试都用完后,如何在固定的时间内重试?

How to retry for fixed amount of time after all previous retries are exhausted in Kafka consumer?

我在 Kafka 消费者中使用指数重试。它按预期工作,但我需要向其添加更多配置。假设在最大重试尝试之后,请求仍然没有成功,那么我需要在之后的固定时间重试。
假设乘数为 2,最大重试次数为 4,初始重试间隔为 1 秒 然后重试顺序将是
1秒、2秒、4秒、8秒
第四次尝试后,我需要以固定的时间间隔(比如每 10 秒)重试,直到请求成功。
有什么办法可以实现吗?

假设你在RetryTemplate中使用ExponentialBackOffPolicy,你可以设置它的maxInterval 属性.

如果您使用 SeekToCurrentErrorHandlerExponentialBackOff 代替(这是现代版本的 spring-kafka 的首选 - 以避免重新平衡),它也具有一个 maxInterval 属性.