随着微服务的普及,服务调用的稳定性变得越来越重要。Sentinel以“流量”为切入点,在流量控制、断路、负载保护等多个领域开展工作,保障服务可靠性。
1.引入sentinel依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
2.配置

流控规则
其原理是监控应用流量的qps或并发线程等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性
直接流量控制:直接触发对流量的控制效果
(反向)关联流量控制:当对某一个资源的请求超过阈值的时候,相关联的资源不可用。
链路流量控制:以调用链路为单位做限流处理,例如:A->B->C 这个链路的总体流量只按入口A的请求量来计算
流控效果
直接拒绝:
默认的流量控制方式,当QPS超过任意规则的阈值后,新的请求就会被立即拒绝,拒绝方式为抛出flowexception。
warm up:
当系统长期处于低水位的情况下,当流量突然增加的时候,直接把系统拉升到高水位可能瞬间把系统压垮。通过冷启动,让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。
排队等待:
严格控制请求通过的间隔时间,也就是让请求以均匀的速度通过。
熔断降级
除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。
sentinel熔断降级会在调用链路中某个资源出现不稳定状态的时候,对这个资源的调用进行控制,让请求快速失败,避免影响到其他的资源而导致级联错误。
降级策略:
平均响应时间:当1s内持续进入N个请求,对应时刻的平均响应时间均超过阈值,那么在接下来的时间窗口之内,对这个方法的调用都会自动地熔断。超过时间窗口之后,便会恢复。
异常比例:当资源的每秒请求量超过某值,并且每秒异常总数占通过量的比值超过阈值之后,资源进入降级状态,在接下来的时间窗口之内,对这个方法的调用都会自动地返回。超过时间窗口之后,便会恢复。
异常数:当资源近1分钟的异常数目超过阈值之后会进行熔断。
85万+

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



