Sentinel 学习笔记
1. 简介
Sentinel是阿里巴巴自研的限流熔断系统。
2. 依赖
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>版本号</version>
</dependency>
3. 限流(FlowRule)
限流:指的是限制QPS或者线程数。指的是当调用QPS,或者线程数大于某个阈值,就抛出相关异常,或者返回false,然后了服务提供方进行相关的处理。
相关示例代码见参考资料1。
4. 熔断降级(DegradeRule)
熔断:指的是当请求处理不稳定,或者服务损坏等情况下,对服务进行降级处理。例如依赖的服务频繁超时,导致服务不稳定,耗时增加时,不调用相关服务。
限流处理和降级处理在形式上没有明显差异,也是以同样的形式定义一个临界区,区别是需要对抛出来的异常需要进行统计,这样才可以知道请求异常的频率,有了这个指标才会触发降级。
相关示例代码见参考资料1。
5. 限流和熔断降级的区别
触发条件不一样。
限流:调用QPS,或者自身线程数超标。
熔断:自身状态出现问题,例如依赖的服务大量超时。
通常限流和熔断作为两个不同的触发条件,最终的处理方式可能都是一样的。
以用户推荐场景为例,不管流量大量增加,还是依赖的服务出现问题,都可以采用放弃调用依赖的用户个性化推荐服务,直接返回统一的兜底数据。