springCloud搭建分布式微服务学习--8--Sentinel热点规则

何为热点?

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

  • 商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制
  • 用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制
    热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。

简单来说就是:对一个频繁访问的点,比如一个请求,要传入p1,p2两个参数,现在对p1进行限制,限制其一秒只能传入5此,超过这个次数就降级

怎么做?

  • 配置controller
    在传统的的getMapping下加一个@SentinelResource注解,指定降级方法,这里要注意,降级方法中一定要加一个BlockException
@GetMapping("/testHotKey")
    @SentinelResource(value = "testHotKey",blockHandler = "del_testHotKey")
    
    public String testHotKey(@RequestParam(value = "p1",required = false)String p1,@RequestParam(value = "p2",required = false)String p2){
        return "----testHotKey";
    }
    public String del_testHotKey(String p1, String p2, BlockException exception){
        return "...it is a pity,blocked";
    }
  • 在sentinel dashboard中进行配置
    如下图,参数所以即上面的p1,(从0开始计数),单一秒内超过1此,就进行降级处理
    在这里插入图片描述

结果:
在这里插入图片描述

参数列外项

有些时候,对一个请求,除了限制热点外,想对某些特定的值不进行限流:
即对于上述的p1,若p1=5,就不进行限流

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值