在微服务里面,服务熔断降级也是一个必须要关注的问题,例如现在我们有一个A服务,需要调用B服务,如下图:
如果我们服务B挂掉了,那么服务A肯定就调用不成功了,此时我们就需要使用到服务熔断降级。在微服务上,故障实例熔断是常见的一种容错保护机制。故障实例熔断能实现主调方迅速自动屏蔽错误率高或故障的服务实例,并启动定时任务对熔断实例进行探活。在达到恢复条件后对其进行半开恢复。在半开恢复后,释放少量请求去进行真实业务探测。并根据真实业务探测结果去判断是否完全恢复正常。
在北极星(polaris mesh)中,同样提供有服务降级的功能,详见下图:
在北极星的熔断降级模块里面,我们可以创建对应的熔断规则,同时再配置下对应的降级服务。
北极星目前主要支持两大类方面的降级,一方面是服务级的熔断,一方面是节点级的熔断。
在服务级的熔断里面,同时支持对整个服务进行熔断,也支持单个服务里面的某个接口进行熔断。
同时在北极星里面,支持的熔断策略有:
故障比例熔断:当服务实例在上一个时间窗(默认1分钟)内,通过的请求量达到或超过最小请求阈值(默认10个),且错误率达到或超过故障比率阈值(默认50%),实例会进入隔离状态。故障比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。 连续故障熔断:当实例在上一个时间窗(默认1分钟)内,连续失败的请求数达到或者超过连续故障阈值(默认10个),实例会进入隔离状态。 熔断隔离时间:默认隔离30s,支持可配置。
以上就是关于spring cloud tencent polaris系列的服务熔断降级的介绍,下一篇文章我们用案例来演示下服务的熔断降级处理。
备注:
1、目前在spring cloud tencent polaris里面,支持以下四种框架的服务熔断,分别是:
Feign支持 RestTemplate支持 WebClient支持 Spring Cloud Gateway支持
后续这四种支持方式我们都会介绍到。
还没有评论,来说两句吧...