限流降级
文章平均质量分 94
服务的熔断、限流和降级
TheLudlows
这个世界上还有什么比自己写的代码运行在一亿的电脑上更酷的事情吗,如果有那就是让这个数字再扩大十倍。
展开
-
流控神器Sentinel指南:熔断降级源码分析
Sentinel 熔断降级(后面简称为降级)会在调用链路中某个资源出现不稳定状态时,例如调用超时或异常比例升高,对这个资源的调用进行限制,让请求快速失败,避免影响到其它的资源而导致级联错误。当资源被降级后,在接下来的降级时间窗口之内,对该资源的调用都抛出 DegradeException。Sentinel的降级检测在DegradeSlot中:@Overridepublic void entr...原创 2019-03-26 14:43:33 · 1509 阅读 · 0 评论 -
流控神器Sentinel指南:深入分析流控原理(下)
文章目录1. 指标数据的统计入口2. 滑动窗口3. 三种流控方式3.1 Default3.2 Warm Up3.3 匀速器4. 退出的流程上篇文章中从规则的定义开始说起,再到调用树,Context、slotChain等,详细的介绍了访问资源,到FlowSlot的entry方法为止。本文将继续上篇文章的主线,阐述流量控制的实现原理。在介绍之前我们需要对滑动窗口实时指标统计进行分析。1. 指标数...原创 2018-12-17 19:54:16 · 3356 阅读 · 0 评论 -
流控神器Sentinel指南:深入分析流控原理(上)
1. 加载规则上一篇文章中,我们队Sentinel的抽象概念进行粗略的描述,这篇文章在此基础上对Sentinel的原理进行更深一步的认识。在Sentinel中要对资源进行保护需要先配置规则,规则包括流量控制规则、熔断降级规则、系统保护规则 以及授权规则。每一种规则都有对应的xxxRuleManager工具类来加载生效。以FlowRule为例,一般设置规则的代码如下:private stat...原创 2018-12-14 18:29:48 · 1924 阅读 · 0 评论 -
流控神器Sentinel指南:浅析Sentinel中的抽象概念
文章目录1. Sentinel中的抽象概念2 Resource3. Entry4. Context5. Node6. Slot7. Metric8. rule上篇文章中介绍了Sentinel的一些使用方式,从这篇文章开始叙述Sentinel的一些高级用法和底层的实现原理。1. Sentinel中的抽象概念解读源码之前我们需要认识Sentinel中的抽象概念。比较重要的概念为:Resource...原创 2018-12-13 18:07:08 · 1513 阅读 · 0 评论 -
流控神器Sentinel指南:初识Sentinel
Sentinel是阿里中间件团队开源的,面向分布式服务架构的轻量级高可用流量控制组件。与Hystrix库相比,它提供了更丰富的功能,以及更直观的实现。本文主参考Sentinel官方提供的示例,让更多的朋友体对sentinel有一个初步的认识。在后续的文章中会讲述它的实现原理细节。概述Sentinel主要提供了流量控制、服务降级、系统负载保护等的功能。先从流量控制说起,什么是流量控制?顾名思义...原创 2018-11-05 00:28:44 · 1771 阅读 · 0 评论 -
Hystrix断路器原理深度解析
文章目录1. HystrixCircuitBreaker2. 断路器Factory3. 实现类`HystrixCircuitBreakerImpl `4. 订阅健康指标5. 是否通过断路器5. HALF OPEN6. 滑动窗口原理1. HystrixCircuitBreakerHystrix的熔断器实现在HystrixCircuitBreake中,此接口比较直观明了。整个HystrixCir...原创 2018-09-29 23:58:18 · 1082 阅读 · 0 评论 -
Hystrix执行过程源码分析
在上一篇文章中大致的了解了Hystrix的基本原理,但是Hystrix的内部是如何实现的呢?为何通过简单的run方法和getFallback方法就可以具备熔断降级的能力。本文将主要讲述:Command的构造调用过程(queue.get)1. Command的构造我们知道Hystrix把业务接口封装为了Command,要实现熔断功能需要继承HystrixCommand抽象类,在使用的时候...原创 2018-09-28 23:57:00 · 2345 阅读 · 0 评论 -
Hystrix工作原理浅析
文章目录1. 为什么需要Hystrix?2. Hellowrd3. HystrixCommand基本配置4. 同步和异步5. request cache6. 请求合并7. FallbackHystrix的流程解析隔离(Isolation)1. 为什么需要Hystrix?在大中型分布式系统中,通常系统很多依赖服务,比如商城系统中支付服务、商品服务、购物车服务,用户服务等等。比如APP依赖于商品...原创 2018-09-23 22:27:57 · 586 阅读 · 0 评论