【问题标题】:Spring WebClient: What is the default multiplier for Retry.backoff?Spring WebClient:Retry.backoff 的默认乘数是多少?
【发布时间】:2021-03-03 01:54:12
【问题描述】:

我正在尝试了解 Spring WebClient Retry.backoff 方法的指数退避策略的默认乘数。这可以配置吗?我找不到这方面的文档。

https://projectreactor.io/docs/core/release/api/reactor/util/retry/Retry.html#backoff-long-java.time.Duration-

版本: 反应堆-netty 0.9.12.RELEASE

【问题讨论】:

标签: spring spring-webclient reactor-netty


【解决方案1】:

实用方法Retry.backoff,正如您所说的,创建了一个指数退避策略。乘数为 2。换句话说,每次重试/失败时,退避期的长度都会加倍。

您可以在reactor.util.retry.RetryBackoffSpec#generateCompanion 中看到这一点。

如您所见,“乘数”是硬编码的,因此无法直接配置。为了使用2 以外的其他东西,您需要创建自己的Retry 实现,并专门实现generateCompanion() 方法来执行RetryBackoffSpec 中所做的逻辑,但使用您自己的自定义乘数。

【讨论】:

  • 接受这个作为答案,因为我已经通过实施它手动验证了它,因此没有人必须再次验证它。
猜你喜欢
  • 2021-08-30
  • 2014-10-20
  • 2018-07-12
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多