熔断规则
在上一篇文章中我们讲解了流控规则的使用和介绍Sentinel流控规则,今天我们给大家讲解sentinel更多样化的讲解以及流量控制。
官方文档:
https://sentinelguard.io/zh-cn/docs/circuit-breaking.html
在面对调用链路中不稳定的资源如何保证高可用?在微服务中一个服务通常会调用其他的模块,可能是服务内的某个应用也有可能是另外的一个远程服务,数据库或者其他API调用。比如我们在支付的时候会调用(某付宝、某信、某联)提供的API,在查询订单我们会调用数据库连接,这些依赖的服务有可能会存在系统不稳定的情况,如果依赖的服务出现了不稳定的情况,请求响应时间过长,线程资源产生堆积,可能最终会耗尽服务的资源,导致服务变的不可用,这个时候 熔断降级 是保证服务高可用的重要措施之一。

如今的微服务都是分布式,有很多服务组成,不同服务之间互相调用,有着比较复杂的调用链路,在上面我们只是模拟绘画了支付操作,在实际的链路调用过程中会有着放大效果,如果某一环不稳定,可能会形成 蝴蝶效应 最终导致整个链路响应时间过长,甚至不可用,所以如果当我们的服务出现问题 不稳定且没有强制依赖服务 调用时,可以进行熔断降级,暂时限制不稳定的调用,避免影响整体服务。

熔断策略:
sentinel提供了三种熔断策略

- 慢调用比例: 选择以慢调用比例作为阈值,需要设置允许的慢调用RT(最大响应时间),如果请求响应时间大于该值则认为慢调用,当统计时长内请求数 大于 最小请求数,且慢调用比例大于阈值,在熔断时长内的请求会被自动熔断,超过熔断时长进入半恢复状态(HALF_OPEN),如果下一个请求响应时间 小于 慢调用比例RT结束熔断,否则再次熔断。
- 异常比例: 当统计时长内请求数 大于 最小请求数,且异常比例大于设定的阈值,在熔断时间内请求自动熔断,超过熔断时长进入半恢复状态(HALF_OPEN),如果下一个请求成功,结束熔断,否则再次熔断,异常比例阈值范围(0.0-1.0)代表百分比。
- 异常数: 当统计时长内异常数 大于 阈值,自动进行熔断,超过熔断时长进入半恢复状态(HALF_OPEN),如果下一个请求成功,结束熔断,否则再次熔断。
熔断状态:
| 熔断状态 |
说明 |
| OPEN |
熔断开启,拒绝所有请求 |
| HALF_OPEN |
熔断半开启(恢复状态),如果接下来请求成功结束熔断,否则继续熔断 |
| CLOSE |
熔断关闭,请求通过 |
热点参数规则的核心属性:
| 属性(Field) |
说明 |
默认值 |
| resource |
资源名(规则的作用对象 ) 必填 |
</ |

本文详细介绍了Sentinel在SpringCloud Alibaba中的熔断限流规则,包括熔断策略(慢调用比例、异常比例、异常数)、热点规则和系统规则,帮助开发者实现微服务的高可用。
最低0.47元/天 解锁文章
4274

被折叠的 条评论
为什么被折叠?



