微服务中如何处理雪崩?
Look:209,By admin Posted On 2021-03-12
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秒