在进行服务化拆分之后,系统中原有的本地调用就会变成远程调用,这样就引入了更多的复杂性。比如说服务A依赖于服务B,这个过程中可能会出现网络抖动、网络异常,服务B变得不可用或者响应慢时,也会影响到A的服务性能,甚至可能会使得服务A占满整个线程池,导致这个应用上其它的服务也受影响,从而引发更严重的雪崩效应。需要针对如下几项做了个性化配置:
Ø 错误率:可以设置每个服务错误率到达制定范围后开始熔断或降级;
Ø 人工干预:可以人工手动干预,主动触发降级服务;
Ø 时间窗口:可配置化来设置熔断或者降级触发的统计时间窗口;
主动告警:当接口熔断之后,需要主动触发短信告知当前熔断的接口信息;
目前市场上可选择的产品例如: Hystrix或则Sentinel做服务熔断和降级,这里推荐下 Sentinel ,不管是Dubbo还是SpringCloud 只要使用官方给定的依赖即可快速接入。
收起