GCP PubSub重试退避时间 [英] GCP PubSub retry backoff timing

查看:0
本文介绍了GCP PubSub重试退避时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为我的Google发布/订阅订阅配置了一个死信策略:

...
  dead_letter_policy {
    dead_letter_topic = foobar
    max_delivery_attempts = x
  }

  {
    "minimumBackoff": y,
    "maximumBackoff": z
  }
...
输入各种值后,我没有看到重试发生在我预期的时间。例如

最大交付尝试次数:5 最小退避:10秒 最大退避:300秒

重试间隔秒数: 15个 17 20个 29

最大交付尝试次数:30 最小退避:5秒 最大退避:600秒

重试间隔秒数: 12个 9. 9. 14. 15个 18 24个 24个 45 44 58 八十一 八十二 120 ...等等。

从这项测试中,您似乎需要一个较高的最大尝试次数值才能获得实际的指数退避?对于我的第一个数据集,我原本预计我最后两次尝试的时间应该接近300。从我的第二个数据集来看,似乎只有在将最大尝试次数设置为最大值100的情况下才会出现这种情况。此假设正确吗?

(还有,这是请求订阅)

谢谢

推荐答案

相关答案:How does the exponential backoff configured in Google Pub/Sub's RetryPolicy work?

基于MINIMUM_BACKOFF和MAXIMUM_BACKOFF的指数回退大致遵循上述问题中提到的公式(带有随机化因子)。您问题相关因素包括

  1. 推导退避间隔时,最大退避不在计算范围内。最大退避设置用于确保我们的退避不会超过配置的退避,即使退避间隔计算得出这样的结果。从您的测试中可以看出,间隔持续时间的增长速度仍会随着重试而增加。
  2. 导致退避间隔增长的乘数是系统内部详细信息,客户端不应依赖它。

如果希望最大回退发生在死信事件发生之前,我建议从较高的最小回退配置开始。

这篇关于GCP PubSub重试退避时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆