尚硅谷springcloud2020day14(p112-119)

今天是2020-12-17
一。线程数失败。
在配置qps限制流控规则时,也可以选择线程数限制。注意qps是限制的每秒请求该接口的数量,而线程数限制了处理该请求的线程数量。当处理对该接口的请求的线程数达到限制以后,后面的请求默认直接快速失败,返回提示信息。
可以说,qps限制了调用者的数量,线程数限制了处理调用者的线程数量。
二。流控模式-关联
假设接口A关联接口B,那么当对B接口的调用达到阈值以后,就对A接口限流,这样可以防止因为B处于繁忙同时导致A的调用产生问题。简单里说就是,一旦关联的接口请求数达到阈值,就限流自己。
例:频繁的调用下单服务,导致支付服务的接口已经达到阈值,那么就要对下单服务进行限流,从而保护支付接口。
使用:在设置流控规则的页面中,高级选项-流控模式选择"关联",然后在关联资源内填写接口地址,即可选择当前接口关联哪个接口。
三。流控模式-链路。
配置这个流控模式需要使用到注解@SentinelResource(“xxx”),这个注解可以标注一个方法。比如说我们有两个请求/aaa和/bbb,@SentinelResource(“ccc”)标注了方法c,两个请求都调用了方法c,此时我们为资源ccc–也就是方法c配置流控规则,流控模式选择链路,入口资源填写/aaa。这样配置好了以后,效果就是/aaa对方法c的调用达到了阈值以后。/aaa会被限流,但是此时/bbb去调用方法c则不会受影响:也就是说,链路模式只会限制某个资源具体的一条调用链,但是该资源的其余调用链不会受影响。
四。流控效果-预热
当某个接口突然收到大量请求,可能导致接口被打死,此时就需要保护接口,限制收到的请求数,缓慢增多直到达到最终需求。
预热效果的重点概念:
‘1.冷加载因子:默认是三,也就是初始阈值默认等于单机阈值/3
2.预热时长:初始阈值经过该时长后会增至最终阈值
预热效果的使用:选择流控效果为预热,配置单机阈值为10,那么初始阈值就是3,配置预热时长为5。当接口被调用后,初始单机阈值为3,在5秒内,阈值会缓慢增大到10。
五。流控效果-排队等待
与其他两种效果不同的是,选择排队等待效果,接口收到的请求数达到阈值后,超出的请求会超时等待,但不会失败,阈值也不会变化。
排队等待效果的重要概念:
1.阈值类型必须选择qps类型
2.超时时间:超出阈值的每个请求访问接口的间隔时间,即排队访问,一次一个。
当大量的请求有间隔的访问某个接口,我们不希望超出阈值的请求直接失败,也不希望阈值去动态的变化,而是希望每经过我们配置的超时时间,使超出阈值的一个请求去访问接口,从而达到超出阈值的多个请求排队通过。

猜你喜欢

转载自blog.csdn.net/qq_44727091/article/details/111327432