【发布时间】:2020-06-24 13:12:51
【问题描述】:
我有一个 kafkaStreams 拓扑,其中有一个处理器 API。在处理器内部,有一个调用外部 API 的逻辑。
如果 API 返回 503,则需要重试消息。
现在,我正在尝试将此消息推送到不同的 kafka 主题并使用“Punctuate”方法每分钟从失败的主题中提取一批消息,重试。
有没有更好的方法/方法来解决这个问题?
【问题讨论】:
-
1) 如果 1 分钟后仍然得到 503,会发生什么?在这种情况下,您的逻辑不会夸大失败的主题吗? 2) 需要异步重试吗?
-
@Peyman - 目标是使用指数退避重试算法重试。因此,对于每个重试计数,目标主题都会不同(retry-1、retry-2、retry-3、....)。也会异步重试,并且“prevRetrytime”小于预期的“nextRetryTime”,会被放回主题中。
标签: apache-kafka apache-kafka-streams retry-logic