.NET6之Mini API【二十四、用Polly重试】
为了保障系统的稳定和安全,在调用三方服务时,可以增加重试和熔断。重试是调用一次失败后再试几试,避免下游服务一次闪断,就把整个链路终止;熔断是为了防止太多的次数的无效访问,导致系统不可知异常。 Polly是独立的重试机制的三方库,这里只说明在使用httpclie…
51ASPX COMMUNITY
技术实践、开发文档与社区资讯,汇集在这里。
为了保障系统的稳定和安全,在调用三方服务时,可以增加重试和熔断。重试是调用一次失败后再试几试,避免下游服务一次闪断,就把整个链路终止;熔断是为了防止太多的次数的无效访问,导致系统不可知异常。 Polly是独立的重试机制的三方库,这里只说明在使用httpclie…
本篇是与上篇HttpClient有关联的,有前篇中,我们是直接使用HttpClient来发出请求的,所有的请求信息都是我们根据需要自己来填充的。那Refit是什么呢?它是一个让我们调用API就像调用一个对象的方法一样简单,是通过把http请求信息,配置到一个接…
说明:本篇不是说明HttpClient怎么使用,而以分享在asp.net core mini api框架下,HttpClient的引入和使用方式。 我们在业务开发中,免不了调用三方的服务,这时就会用到HttpClient,在早期的asp.net core框架中…
限流,可以在基础设施进行配置实现,也可以在网关的地方进行限流,但服务本身的限流也不可或缺,因为当多副本时,一个副本故障,流量对于其他副本来说会提高,如果超过其承受请求量的范围,会引起服务连续崩塌,所以单服务本身最好也是要实现限流的。 在asp.net core…
.NET云原生开发挑战赛总决赛 即将在7月10日拉开帷幕 还没预约直播吗? 抓紧时间啦! 由51Aspx联合微软共同举办的.NET云原生开发挑战赛 共有10支队伍入围决赛! (以下名单按决赛答辩抽签顺序排列) 序号 作品名称 No.1 MVC 音乐商店 No.…
为了验证api post上来的数据的有效性,我们可以引入FluentValidation(详见 https://fluentvalidation.net)。在asp.net mvc中,使用的是模型验证,通过在实体类上添加特性达到验证效果。 FluentVali…
在本系例文章的第八篇中,我们聊过官方的日志实现,即《.NET6之MiniAPI(八):日志》。但官方的日志功能更多是提供了一个实现基础,对于要求一个灵活,强大,方便的日志体系,官方的还是有差距的,那么本篇就介绍一下NLog,这款强大,灵活,方便的日志库,在Mi…
一:背景 1. 讲故事 前段时间有位朋友在微信上找到我,说他的 web 系统 cpu 运行一段时候后就爆高了,让我帮忙看一下是怎么回事,那就看吧,声明一下,我看 dump 是免费的,主要是锤炼自己技术,没有某软工程师高额的技术分析费。 闲话不多说,我们上 wi…
从本篇开始,介绍一些很不错的三方库,来丰富MiniAPI的使用。 在创建MiniAPI项目时,模板提供了一个是否启用OpenAPI的选项,足见这个三方库的优势和强大。 OpenAPI为我们测试API提供了强大的支持,调用API的开发人员,可以轻松测试,参照开发…
缓存是空间换时间的一种做法,可以有效的提升响应时间,asp.net core引入了本地内存缓存和分布式缓存。 先看一下本地内存缓存: using Microsoft.Extensions.Caching.Memory; using Microsoft.Exte…
对于web,安全是一个永久的话题,所以ASP.NET Core数据保护提供了一个简单,易用的加密API,可以用来保护数据,密钥管理和轮换。 ASP.NET Core的数据保护是根据本机的一个key来生成加密码,然后再用这个key来解密,如果key不一样,解密失…
前一篇的跨域请求的方式是松宽的方式,毕竟跨域有安全风险,应尽量少的允许访问必要资源,本篇分别从请求方法,请求头和请求凭据方面了解跨域设置。 请求方法: api项目,get,post是默认访问,这里只设置了PUT允许访问 using Microsoft.AspN…