sentinel服务限流

使用sentinel服务限流

下一篇服务降级

一、QPS限流
直接拒绝方式是默认的流量控制方式,当QPS超过任意规则的阈值后,新的请求就会被立即拒绝,拒绝方式为抛出FlowException
sentinel服务限流
二、Warm Up
Warm Up方式,即预热/冷启动方式。当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮
sentinel服务限流
sentinel服务限流

三、排队等待
匀速排队方式会严格控制请求通过的间隔时间,也即是让请求以均匀的速度通过,对应的是漏桶算法
当请求不超过阈值的情况下,发起的请求会匀速排队,而不会出现异常,每500毫秒处理一个请求。当处理出现异常超过500毫秒,则会自动降级提示
sentinel服务限流

流控模式

直接
默认的流控模式,不讲
关联
当两个资源之间具有资源争抢或者依赖关系的时候,这两个资源便具有了关联。比如对数据库同一个字段的读操作和写操作存在争抢,读的速度过高会影响写得速度,写的速度过高会影响读的速度。如果放任读写操作争抢资源,则争抢本身带来的开销会降低整体的吞吐量。可使用关联限流来避免具有关联关系的资源之间过度的争抢,举例来说,read_db 和 write_db 这两个资源分别代表数据库读写,我们可以给 read_db 设置限流规则来达到写优先的目的:设置 strategy 为 RuleConstant.STRATEGY_RELATE 同时设置 refResource 为 write_db。这样当写库操作过于频繁时,读数据的请求会被限流。
链路
稍微比较麻烦
sentinel服务限流

组合使用

QPS+关联
当/testE访问出现了问题,则/testA同时也不能访问
一般用在订单和支付服务上,当订单服务出现故障,则同时将支付服务关闭,并友好提示
sentinel服务限流