架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 878|回复: 0

[资料] .NET/C# 简单使用 Polly 教程

[复制链接]
发表于 2023-7-26 20:00:59 | 显示全部楼层 |阅读模式
需求:之前项目一直都在使用 Polly 做 HttpClient 重试机制,由于网络存在波动或者项目在发布期间可能会无法正常提供服务,在微服务架构下使用 Polly 提升了服务的可用性,不会因为一次短暂的异常导致整个事务失败,但是需要接口幂等。

Polly 是一个 .NET 弹性和瞬态故障处理库,允许开发人员以流畅且线程安全的方式表达重试、断路器、超时、隔板隔离、速率限制和回退等策略。

GitHub 地址:https://github.com/App-vNext/Polly

首先,新建一个网站接口,请求第三次才会返回正常状态码,代码如下:


.NET 控制台应用

新建控制台应用,使用 HttpClient 请求接口,尝试请求报错,如下:

QQ截图20230726193022.jpg

引入 Polly,增加重试机制,nuget 命令如下:

代码如下:

重试了 3 次,第 4 次请求成功,成功获取到返回的数据,如下图:

QQ截图20230726193858.jpg

ASP.NET Core 应用

如果是 ASP.NET Core 项目,可以直接引用 Microsoft.Extensions.Http.Polly,如下:

代码如下:

参考:

https://learn.microsoft.com/en-us/dotnet/architecture/microservices/implement-resilient-applications/implement-http-call-retries-exponential-backoff-polly
https://github.com/App-vNext/Polly/wiki/Polly-and-HttpClientFactory
(完)





上一篇:.NET/C# 使用 Refit 请求参数 enum 枚举类型报错
下一篇:PowerShell 基于 Compress-Archive 压缩文件夹
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-27 18:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表