在 Spring 启动应用程序中为 kafka 消费者设置重试策略时,何时使用 ExponentialBackOffPolicy 与 FixedBackOffPolicy?
When to use ExponentialBackOffPolicy vs FixedBackOffPolicy when setting retry policy for a kafka consumer in a Spring boot app?
在 Spring 启动应用程序中为 kafka 消费者设置重试策略时,何时使用 ExponentialBackOffPolicy 与 FixedBackOffPolicy?
我看到 FixedBackOffPolicy 是 BackOffPolicy 的一个实现,它在继续之前暂停一段固定的时间,ExponentialBackOffPolicy 是 BackOffPolicy 的一个实现这会增加给定集中每次重试的退避期。
除此之外,FixedBackOffPolicy 扩展了 StatelessBackOffPolicy 而 ExponentialBackOffPolicy 则没有。在这方面,请帮助我理解,哪些合适的用例更喜欢一个而不是另一个?
这很简单; FixedBackOffPolicy
不需要状态,因为您在每次重试之间等待相同的时间间隔,例如5秒。
例如5 秒,5 秒,5 秒,...
随着 ExponentialBackOffPolicy
状态在重试之间保持。
例如初始间隔为 1 秒,乘数为 2.0,最大间隔为 10 秒,重试间隔将为 1 秒、2 秒、4 秒、8 秒、10 秒、10 秒、10 秒,...
对于 Kafka,您需要确保重试间隔的总和小于 max.poll.interval.ms
。
在 Spring 启动应用程序中为 kafka 消费者设置重试策略时,何时使用 ExponentialBackOffPolicy 与 FixedBackOffPolicy?
我看到 FixedBackOffPolicy 是 BackOffPolicy 的一个实现,它在继续之前暂停一段固定的时间,ExponentialBackOffPolicy 是 BackOffPolicy 的一个实现这会增加给定集中每次重试的退避期。
除此之外,FixedBackOffPolicy 扩展了 StatelessBackOffPolicy 而 ExponentialBackOffPolicy 则没有。在这方面,请帮助我理解,哪些合适的用例更喜欢一个而不是另一个?
这很简单; FixedBackOffPolicy
不需要状态,因为您在每次重试之间等待相同的时间间隔,例如5秒。
例如5 秒,5 秒,5 秒,...
随着 ExponentialBackOffPolicy
状态在重试之间保持。
例如初始间隔为 1 秒,乘数为 2.0,最大间隔为 10 秒,重试间隔将为 1 秒、2 秒、4 秒、8 秒、10 秒、10 秒、10 秒,...
对于 Kafka,您需要确保重试间隔的总和小于 max.poll.interval.ms
。