美文网首页
Sentinel热点参数限流

Sentinel热点参数限流

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

    官方地址文档

    热点概述

    image.png

    热点参数限流[基本配置]---入门测试案例

    只对热点数据限流有用,不管Java运行异常(如 10/0)

    1. 新建 HotKeyFlowLimitController
      @SentinelResource(value = "testHotKey",blockHandler = "deal_testHotKey")
      • value 值资源名,在sentinel 控制台配置的,也可以配置URL
      • blockHandler 兜底方法,当出现问题,执行哪个方法
    /**
     * 热点参数限流
     */
    @RestController
    public class HotKeyFlowLimitController {
    
        @GetMapping(value = "/testHotKey")
        @SentinelResource(value = "testHotKey",blockHandler = "deal_testHotKey")
        public String testHotKey(@RequestParam(value = "p1",required = false)String p1,
                                 @RequestParam(value = "p2",required = false)String p2)
        {
    
            return "----testHotKey";
        }
      
       //BlockException  注意要加上
        public String deal_testHotKey(String p1, String p2, BlockException e){
    
            return "deal_testHotKey";//Sentinel 系统默认提示:Blocked by Sentinel (flow limiting)
        }
    }
    
    1. 配置热点规则

    资源名,参数索引(索引值从0开始),单机阈值
    意思是:访问 /testHotKey 这个地址并且携带了一个参数,或者多个参数,范文超过阈值时,进行限流

    image.png
    1. 访问测试

    当访问 http://localhost:8401/testHotKeyhttp://localhost:8401/testHotKey ?p2=2无论多块都不会出现限流。
    当访问 http://localhost:8401/testHotKey?p1=1时[携带了p1],当QPS每秒超过1次,马上降级处理,执行我们定义的兜底方法。

    image.png

    如果没有配置 blockHandler = "deal_testHotKey",展示的页面将是这样[显示不太友好]:


    image.png

    ================================================================================

    热点参数限流[参数例外项]---入门测试案例

    我们期望 p1 参数当它是一个特殊值时,他的限流值跟品是不一样。

    1. 配置热点规则

    意思是:当 p1=5 是,QPS 为 5(一秒可以接收5个请求)

    热点规则

    支持七种数据类型:


    七种数据类型
    1. 测试

    当 p1不等于5时,http://localhost:8401/testHotKey?p1=1,发现QPS超过1就会报错
    当 p1等于5时,http://localhost:8401/testHotKey?p1=5,发现QPS超过5才会报错

    相关文章

      网友评论

          本文标题:Sentinel热点参数限流

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