【发布时间】:2018-11-25 21:24:28
【问题描述】:
我们想为失败创建一个重试 kafka 机制。我看到很多人介绍了一种拥有多个“重试”主题的方式。想知道为什么我不能通过克隆消息来简化流程,在其中添加一个重试计数器字段,然后在同一主题上重新生成它,直到达到 X 次然后用尽。
我错过了该机制的什么?
【问题讨论】:
标签: apache-kafka kafka-consumer-api kafka-producer-api
我们想为失败创建一个重试 kafka 机制。我看到很多人介绍了一种拥有多个“重试”主题的方式。想知道为什么我不能通过克隆消息来简化流程,在其中添加一个重试计数器字段,然后在同一主题上重新生成它,直到达到 X 次然后用尽。
我错过了该机制的什么?
【问题讨论】:
标签: apache-kafka kafka-consumer-api kafka-producer-api
基本上,您错过了重试策略中应该存在的可配置延迟。您提出的简单方法将在某些中断期间导致非常高的 CPU 使用率(例如,您依赖的某些服务在几分钟或几小时内不可用)。最好的方法是采用指数退避策略 - 每次重试都会增加延迟,之后会再次重试消息处理。而这种“交货延迟”是 Kafka 不支持的。
【讨论】:
不确定我是否正确理解了这个问题。不过,我建议你有一些 Kafka 的“重试”策略。
【讨论】: