GCP PubSub重试退避时间 [英] GCP PubSub retry backoff timing
本文介绍了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的指数回退大致遵循上述问题中提到的公式(带有随机化因子)。您问题相关因素包括
- 推导退避间隔时,最大退避不在计算范围内。最大退避设置用于确保我们的退避不会超过配置的退避,即使退避间隔计算得出这样的结果。从您的测试中可以看出,间隔持续时间的增长速度仍会随着重试而增加。
- 导致退避间隔增长的乘数是系统内部详细信息,客户端不应依赖它。
如果希望最大回退发生在死信事件发生之前,我建议从较高的最小回退配置开始。
这篇关于GCP PubSub重试退避时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文