SpringCloud学习记录 | 第十九篇:SpringCloud Alibaba Sentinel 热点参数限流

重要、重要、重要

https://github.com/alibaba/Sentinel/wiki/%E7%83%AD%E7%82%B9%E5%8F%82%E6%95%B0%E9%99%90%E6%B5%81

 

何为热点?

热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:

  • 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制
  • 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制

热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。

 

热点限流配置

Sentinel端配置,意思是说:第一个参数1秒钟内超过一次就触发限流

SpringCloud学习记录 | 第十九篇:SpringCloud Alibaba Sentinel 热点参数限流_第1张图片

微服务中的配置

 @GetMapping("/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 "this is test hotKey";
    }

    public String deal_testhotKey(String p1, String p2, BlockException e) {
        return "this is deal_testhotKey";
    }

如果前端触发我们在Sentinel中热点限流的配置之后,我们就会得到我们在@SentinelResource注解中配置的blockHandler返回的信息:this is deal_testhotKey

热点限流高级设置(参数额外项):

这里的意思是说,当我们第一个参数(我这里的第一个参数为p1)的值等于5时,限流的QPS的值时我们在高级设置中的2了。

SpringCloud学习记录 | 第十九篇:SpringCloud Alibaba Sentinel 热点参数限流_第2张图片

 

其他

1.参考代码:https://github.com/TianLuhua/springCloud2020.git

2.Sentinel:需要自己下载,然后跑起来

3.Sentinel客户端:cloudalibaba-sentinel-service8401

 

 

你可能感兴趣的:(SpringCloud,sentinel,热点参数限流)