美文网首页
Sentinel流控规则-流控模式

Sentinel流控规则-流控模式

作者: CodeYang | 来源:发表于2021-09-06 09:40 被阅读0次

    Sentinel 流控界面

    官方流量控制地址

    流控规则.png
    • 流控模式:

      • 直接:api达到限流条件时,直接限流
      • 关联:当关联的资源达到阈值时,就限流自己
      • 链路:只记录指定链路上的流量(指资源从入口资源进来的流量,如果达到阈值,就进行限流)【api级别的针对来源】
    • 资源名:唯一名称,默认请求路径

    • QPS (每秒钟的请求数量):当调用该api的QPS达到阈值的时候,进行限流

    • 线程数:当调用该 api 的线程数达到阈值的时候,进行限流

    流控模式---直接(默认)---阈值类型[QPS]

    阈值类型 QPS,访问被挡在外面

    其他请求被挡在外面.png
    1. 新增流控规则

    表示1秒钟内访问1次就OK,若超过1次,就直接-快速失败,报默认错误

    新增流控(QPS).png
    1. 测试,访问:http://localhost:8401/testA

    如果快速点击访问,就会直接报错,因为1秒内超过了1次。

    测试正常结果.png 测试流量结果.png
    1. 随时修改流控规则,随时生效。

    流控模式---直接(默认)---阈值类型[线程数]

    若当前线程没有处理完当前请求,再次来一个请求就会直接报错

    其他请求放进来,但是处理线程有限
    1. 新增流控规则


      新增流控(并发线程数)
    2. 控制层处理程序睡眠一秒,
     @GetMapping(value = "/testA")
        public String testA(){
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "testA";
        }
    
    1. 测试,访问

    若当前线程没有处理完当前请求,再次来一个请求就会直接报错

    image.png image.png

    流控模式---关联--阈值类型[QPS]

    当关联的资源 /testB达到阈值后,就限流 /testA
    简单来说就是:B惹事,A挂了

    比如就是说:支付接口达到阈值时,就限流下订单的接口

    1. 新建流控规则


      阈值类型阈值类型[QPS]
    2. 测试,持续访问 /testB 使之达到QPS阈值,同时去访问 /testA 发现被限流


      测试结果

    流控模式---关联--阈值类型[线程数]

    1. 新建流控规则


      阈值类型[并发线程数]
    2. 使用同理方法:让处理程序睡眠一秒

    @RestController
    public class FlowLimitController {
    
        @GetMapping(value = "/testA")
        public String testA(){
            return "testA";
        }
    
        @GetMapping(value = "/testB")
        public String testB(){
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return "testB";
        }
    }
    
    1. 测试,持续访问 /testB 使之达到QPS阈值,同时去访问 /testA 发现被限流


      测试结果

    流控模式---链路--阈值类型[QPS]

    1. 新建流控规则


      阈值类型阈值类型[QPS]

    流控模式---链路--阈值类型[并发线程数]

    1. 新建流控规则


      阈值类型阈值类型[并发线程数]

    相关文章

      网友评论

          本文标题:Sentinel流控规则-流控模式

          本文链接:https://www.haomeiwen.com/subject/kbnsiltx.html