实现使用指数退避算法的重试

提示

此内容摘自电子书《适用于容器化 .NET 应用程序的 .NET 微服务体系结构》,可在 .NET 文档上获取,也可作为免费可下载的 PDF 脱机阅读。

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

使用指数退避算法的重试是一种重试操作方法,随着等待时间以指数方式增长,重试次数达到最大值(指数退避算法)。 该技术接受以下事实:云资源可能因任何原因而出现几秒钟以上的间歇性不可用情况。 例如,业务流程协调程序可能会将容器移动到群集中的另一个节点以进行负载均衡。 在此期间,某些请求可能会失败。 另一个实例是像 SQL Azure 这样的数据库,在该数据库中,数据库可以移动到另一台服务器进行负载均衡,这会导致数据库有几秒钟时间不可用。

有好几种方法可实现使用指数退避算法的重试逻辑。