温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Sentinel热点key限流如何实现

发布时间:2022-08-31 14:05:43 来源:亿速云 阅读:171 作者:iii 栏目:开发技术

本篇内容介绍了“Sentinel热点key限流如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

基本介绍

何为热点

热点即经常访问的数据,很多时候我们希望统计或者限制某个热点数据中访问频次最高的TopN数据,并对其访问进行限流或者其它操作

Sentinel热点key限流如何实现

兜底方法

分为系统默认和客户自定义两种

之前的case,限流出问题后,都是用sentinel系统默认的提示:Blocked by Sentinel (flow limiting)

我们能不能自定?类似hystrix,某个方法出问题了,就找对应的兜底降级方法?

结论:

从HystrixCommand 到@SentinelResource

@GetMapping("/testHotKey")
@SentinelResource(value = "testHotKey",blockHandler = "dealHandler_testHotKey")
public String testHotKey(@RequestParam(value = "p1",required = false) String p1, 
                         @RequestParam(value = "p2",required = false) String p2){
    return "------testHotKey";
}
public String dealHandler_testHotKey(String p1,String p2,BlockException exception)
{
    return "-----dealHandler_testHotKey";
}

Sentinel热点key限流如何实现

限流模式只支持QPS模式,固定写死了。(这才叫热点)

@SentinelResource注解的方法参数索引,0代表第一个参数,1代表第二个参数,以此类推

单机阀值以及统计窗口时长表示在此窗口时间超过阀值就限流。

上面的抓图就是第一个参数有值的话,1秒的QPS为1,超过就限流,限流后调用dealHandler_testHotKey支持方法。

方法testHotKey里面第一个参数只要QPS超过每秒1次,马上降级处理

访问http://localhost:8401/testHotKey没问题

Sentinel热点key限流如何实现

同理带参数访问也没有问题

Sentinel热点key限流如何实现

同理带参数访问也1s点个俩三次发现问题

Sentinel热点key限流如何实现

Sentinel热点key限流如何实现

参数例外项

上述案例演示了第一个参数p1,当QPS超过1秒1次点击后马上被限流

Sentinel热点key限流如何实现

Sentinel热点key限流如何实现

前提条件 :热点参数的注意点,参数必须是基本类型或者String

Sentinel热点key限流如何实现

“Sentinel热点key限流如何实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI