前言 简单整理一下熔断与限流,跟上一节息息相关. 正文 polly 的策略类型分为两类: 被动策略(异常处理.结果处理) 主动策略(超时处理.断路器.舱壁隔离.缓存) 熔断和限流通过下面主动策略来实现: 降级响应 失败重试 断路器 舱壁隔离 Policy 类型 状态 说明 CircuitBreaker(断路器) 有状态 共享失败率,以决定是否熔断 Bulkhead(舱壁隔离) 有状态 共享容量使用情况,以决定是否执行动作 Cache(缓存) 有状态 共享缓存的对象,以决定是否命中 其他策略 无状…
前言 简单介绍一下权限源码阅读一下. 正文 一直有人对授权这个事情上争论不休,有的人认为在输入账户密码给后台这个时候进行了授权,因为认为发送了一个身份令牌,令牌里面可能有些用户角色信息,认为这就是授权,有的人认为这只是获取令牌的过程. 现实生活中有一个是授权证书,那么有人认为token 是授权证书,但这只是颁发证书.账户密码获取获取身份令牌也不是认证,认证是证明你的身份令牌有效的过程. 那么netcore 中是如何解释授权的: 授权是指确定用户可执行的操作的过程.故而实际上,获取身份令牌只是获取…
前言 前文中我们去获取value值的时候,都是通过configurationRoot 来获取的,如configurationRoot["key"],这种形式. 这种形式有一个不好的地方,那就是不方便.那么看下.net core如何将其转换为强类型. 正文 引入:Microsoft.extensions.configuration.Binder 这个包. 配置文件内容如下: { "key1": "IamString", "key2&quo…
前言 什么是结构化呢? 结构化,就是将原本没有规律的东西进行有规律话. 就比如我们学习数据结构,需要学习排序然后又要学习查询,说白了这就是一套,没有排序,谈如何查询是没有意义的,因为查询算法就是根据某种规律得到最佳的效果. 同样日志结构话,能够让我们得到一些好处.如果说容易检索,容易分析,总的来说就是让我们的日志更加有规律. 如果我们的日志结构化了,那么可以使用elasticsearch 这样的框架进行二次整理,再借助一些分析工具. 我们就能做到可视化分析系统的运行情况,做到日志告警.上下文关联…
前言 本来想整理到<<重新整理.net core 计1400篇>>里面去,但是后来一想,整理 .net core 实践篇 是偏于实践,故而分开. 因为是重新整理,那么就从配置开始整理.以下只是个人理解,如有错误,望请指点谢谢. 正文 在我们创建好一个应用的时候,那么出现在我们视野的是一个这样的东西: public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Buil…
基本概念 超时.熔断.限流听起来好像很远,但实际上用在方方面面.很多人可能还搞不懂熔断是做什么,其实可以把熔断理解为一种防护措施.做个假设,在微服务体系下,某个下游服务响应很慢,然后随着时间推移,会有越来越多的请求堆积,从而会导致各种严重后果,单说连接池大量被占用就很要命.更不用说服务之间还要相互调用,你等我10秒,我等你5秒,不仅毫无体验感,高可用也就成了空谈.不如换个思路:与其等10秒返回一个请求失败,不如马上就返回请求失败.这样一来,请求堆不起来,资源也有时间释放或者恢复.这个动作就叫熔断…
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka-ribbon.eureka-feign和spring-gataway的实现. 参考 eureka-server eureka-client eureka-ribbon eureka-feign spring-gateway 概术 在高并发应用中,缓存.限流.降级,是我们保护系统应用的三大利器.在开…
[z]https://juejin.im/post/5cced96e6fb9a032514bbf94当我们的系统的访问量突然剧增,大量的请求涌入过来,最典型的就是秒杀业务了,我们可能会知道会有一波高峰,这时候该如何处理? 而且现在很多情况我们还需要调用第三方接口例如支付等,因此我们还得考虑如果第三方那边出问题了,返回异常的慢,我们系统该如何处理. 常见的处理方式有三种:降级.熔断.限流. 降级 降级也就是服务降级,当我们的服务器压力剧增为了保证核心功能的可用性 ,而选择性的降低一些功能的可用性,…
前言 简单整理一下polly 重试. 正文 在开发程序中一般都有一个重试帮助类,那么polly同样有这个功能. polly 组件包: polly 功能包 polly.Extensions.Http 专门针对http的扩展包 Miscrosoft.Extension.Http.Polly 看到这个名字,那么99%是针对官方.net core的扩展包,是HttpClientFactory 的扩展. polly有下面一些功能: 失败重试 服务熔断 超时处理 舱壁处理 缓存策略 失败降级 组合策略 其他…
前言 这里介绍一下.net core的依赖注入框架,其中其代码原理在我的另一个整理<<重新整理 1400篇>>中已经写了,故而专门整理应用这一块. 以下只是个人整理,如有问题,望请指点. 正文 为什么有这个依赖注入呢? 假设人们面临这样一个问题. 比如说一个人做飞机去北京.那么人和飞机有什么关系呢?人和北京有什么关系呢? 假设有3个主体类,一个是人一个是飞机一个是北京.他们之间到底应该怎么组织呢? 先说人和北京的关系,人要去北京,那么飞机就是一个交通工具.是的,只是一个交通工具,那…