如何用Polly实现.NET6 MiniAPI的长尾词重试机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计383个文字,预计阅读时间需要2分钟。
为保障系统的稳定和安全,调用第三方服务时,可增加重试和熔断机制。重试是在调用失败后再次尝试执行,避免服务一次性中断;熔断则是为了避免频繁的失败调用导致整个链路中断。重试是调用一次失败后再次尝试,防止服务直接中断;熔断是为了防止过多的失败次数导致整体服务崩溃。
为了保障系统的稳定和安全,在调用三方服务时,可以增加重试和熔断。重试是调用一次失败后再试几试,避免下游服务一次闪断,就把整个链路终止;熔断是为了防止太多的次数的无效访问,导致系统不可知异常。
Polly是独立的重试机制的三方库,这里只说明在使用localhost:5258");
})
.AddTransientHttpErrorPolicy(policyBuilder => policyBuilder.RetryAsync(3));
var app = builder.Build();
//调用localhost:5258");
})
.AddTransientHttpErrorPolicy(policyBuilder =>
policyBuilder.WaitAndRetryAsync(3, retryNumber =>
{
switch (retryNumber)
{
case 1:
return TimeSpan.FromMilliseconds(500);
case 2:
return TimeSpan.FromMilliseconds(1000);
case 3:
return TimeSpan.FromMilliseconds(1500);
default:
return TimeSpan.FromMilliseconds(100);
}
}))
//熔断
.AddTransientHttpErrorPolicy(policyBuilder =>
policyBuilder.CircuitBreakerAsync(6, TimeSpan.FromSeconds(30)));
CircuitBreaker控制如果有6次失败的请求,就暂停30秒,具体提示如下:
想要更快更方便的了解相关知识,可以关注微信公众号
本文共计383个文字,预计阅读时间需要2分钟。
为保障系统的稳定和安全,调用第三方服务时,可增加重试和熔断机制。重试是在调用失败后再次尝试执行,避免服务一次性中断;熔断则是为了避免频繁的失败调用导致整个链路中断。重试是调用一次失败后再次尝试,防止服务直接中断;熔断是为了防止过多的失败次数导致整体服务崩溃。
为了保障系统的稳定和安全,在调用三方服务时,可以增加重试和熔断。重试是调用一次失败后再试几试,避免下游服务一次闪断,就把整个链路终止;熔断是为了防止太多的次数的无效访问,导致系统不可知异常。
Polly是独立的重试机制的三方库,这里只说明在使用localhost:5258");
})
.AddTransientHttpErrorPolicy(policyBuilder => policyBuilder.RetryAsync(3));
var app = builder.Build();
//调用localhost:5258");
})
.AddTransientHttpErrorPolicy(policyBuilder =>
policyBuilder.WaitAndRetryAsync(3, retryNumber =>
{
switch (retryNumber)
{
case 1:
return TimeSpan.FromMilliseconds(500);
case 2:
return TimeSpan.FromMilliseconds(1000);
case 3:
return TimeSpan.FromMilliseconds(1500);
default:
return TimeSpan.FromMilliseconds(100);
}
}))
//熔断
.AddTransientHttpErrorPolicy(policyBuilder =>
policyBuilder.CircuitBreakerAsync(6, TimeSpan.FromSeconds(30)));
CircuitBreaker控制如果有6次失败的请求,就暂停30秒,具体提示如下:
想要更快更方便的了解相关知识,可以关注微信公众号

