我们有情况,架构如下。
RabbitMQQueue -> Spring侦听器->服务层-> (网络调用)。
在上面的网络调用中,取决于从队列发送到每个消息中的URL。
现在,这个网络调用多次失败,因为它的外部服务器有429个错误代码。
记住,上面有这么多不同的URLS,它从一个队列开始运行。
我们使用spring重试实现了重试,我们看到了一些改进,但是请求的规模和数量太高了。
我们需要在重试中做些改进。
目前,重试是通过固定的回退和最大尝试作为3实现的。
我正在考虑使用重试( retry ),这意味着在每次重试网络呼叫时,我需要有不同的回退策略。
这是否可行和正确的方法,或是否有任何改进可以在任何级别?
我们是否可以为每一次重试提供单独的回退策略,这些策略将被执行
请建议是否可以通过春季重试实现这一目标。
发布于 2022-08-22 16:31:42
您可以编写自定义BackOffPolicy
,它根据BackOffContext
中的信息委托给不同的退避策略。
RetryContext
中键backOffContext
下的退避上下文。
请参阅BackOffPolicy
的javadocs。
https://stackoverflow.com/questions/73447890
复制相似问题