小鱼儿博客

微服务中如何处理雪崩?

1.雪落而不雪崩的解决方案

隔离、熔断、降级、限流、超时

2.容错

容错的三个核心思想
1)保证自己不被上游服务压垮
2)保证自己不被下游服务拖垮
3)保证自己不受外界环境影响

3.Sentinel规则

3. 1 流控规则

流量控制,其原理是监控流量的QPS(每秒查询率)或者并发线程数等指标

3.1.1 流控模式

直接(默认)
关联(当关联的资源达到限流条件时,开启限流(适用于资源让步))
链路(当从某个接口的过来的资源达到限流时,开启限流,有点类似于针对来源配置项,区别在针对来源配置项针对上级微服务,链路流控针对于上级接口,也就是粒度最细)
如果要使链路规则生效,则版本需要2.1.1之后,并且增加配置
spring.cloud.sentinel.web-context-unify=false

3.1.2 流控效果

快速失败
warm up(预热)
排队等待

3.2 降级规则

降级规则指的就是在满足什么条件的时候对服务进行降级
慢调用比例
RT:平均响应时间
时间窗口:降级持续时间
当平均响应时间 大于 输入的值的时候,进入预降级状态,如果1秒内持续进入的请求响应时间依然大于输入的值,则进入降级状态,降级时间为时间窗口输入的值
异常比例
当资源的每秒异常总数占总量的比例超过阈值后,就会进入降级状态
异常数
当1分钟之内的异常数大于异常数,则进入降级状态,注意 时间窗口需要大于60秒

3.3 热点规则

热点参数流控规则是一种更细粒度的规则,它允许将规则具体细化到具体的参数上

3.4 授权规则

自定义授权规则。

3.5 系统规则

自定义异常界面

0

用户头像
  
博客所属
博主:liuzz | 小鱼儿
个人: 属鼠 水瓶座
故乡:河北 秦皇岛
现居:中国 北京
职业:IT码农
主页:http://www.liuzz.com
喜欢: 看海、台球
我的简历:My Resume
联系博主
369264776
jun-yuhong#163.com
说点什么 ×