SpringCloudAlibaba:Sentinel热点规则

SpringCloudAlibaba:Sentinel热点规则

一、介绍

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

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

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

在这里插入图片描述

二、代码测试

1.新建Controller

@RestController
public class HotkeyController {
    /**
     * SentinelResource: sentinel相关配置,value唯一,blockHandler回调方法
     */
    @GetMapping("/hotkey")
    @SentinelResource(value = "hotkey",blockHandler = "dealHotkey")
    public String hotkey(@RequestParam(value = "key",required = false) String key){
        return "hello hotkey,  O(∩_∩)O";
    }
    public String dealHotkey(String key, BlockException e){
        return "调用失败,   o(╥﹏╥)o";
    }
}

然后启动项目,访问一下接口出现,sentinel的控制台

2.新建热点规则

解释:资源名为@SentinelResource的value值,阈值是qp的值,统计时长是发生后1秒内降级。

在这里插入图片描述

这里的参数索引是对应的是第几个参数,例如http://localhost:8005/hotkey?key=sentinel这里的key就是第0个参数。

这里的单机阈值0的意思是只要一访问,就直接触发降级业务。如果这里单机阈值设置为3,这快速点击四次后后才触发降级业务

3.测试

调用:http://localhost:8005/hotkey

在这里插入图片描述

调用http://localhost:8005/hotkey?key=sentinel频繁时:

在这里插入图片描述

4.参数例外项

期望当key为phone时qps为100,剩下的为1

在这里插入图片描述

狂点后仍然返回正确的行为:

http://localhost:8005/hotkey?key=phone

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值