热点key限流(3)

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

基本介绍



何为热点


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


3ece45a4503c4d83b89b8fa2f5946c3b.png


兜底方法


分为系统默认和客户自定义,两种
之前的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";
}

ed16a7916c774fe6b26dd962739da9b5.png


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


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


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

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


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

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


7a280cf30a1b4a2a8df74a2cc1a3ea4d.png

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


474345c15c61486aa94aaef15a45b959.png


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


42d006a1a5484b45a84fb5790493721c.png

3dac2445cf8f479ab4ae6827a2823bbd.png


参数例外项



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



50de932686824f65b290b78d396e9dd7.png37c7ed07b90c43c3808709156cc07a8e.png


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


8c684d0fd0474a33861fa7a7522762f7.png


相关文章
|
SQL 运维 关系型数据库
在阿里云RDS(Relational Database Service)进行跨区域迁移
在阿里云RDS(Relational Database Service)进行跨区域迁移
339 2
|
运维 监控 数据可视化
日志服务 HarmonyOS NEXT 日志采集最佳实践
鸿蒙操作系统(HarmonyOS)上的日志服务(SLS)SDK 提供了针对 IoT、移动端到服务端的全场景日志采集、处理和分析能力,旨在满足万物互联时代下应用的多元化设备接入、高效协同和安全可靠运行的需求。
117792 107
|
Java
Java实现计数器
Java实现计数器可以使用以下代码
418 0
|
NoSQL Java Redis
redis: jedis连接超时(需要手动注入连接超时检测的配置)
redis: jedis连接超时(需要手动注入连接超时检测的配置)
919 0
|
Java 网络架构 容器
面向整洁对象的分层架构COLA 4.0
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“面向整洁对象的分层架构”。 目前COLA已经发展到COLA 4.0。 COLA分为两个部分,COLA架构和COLA组件。
面向整洁对象的分层架构COLA 4.0
|
Java Apache Maven
Apache Maven、Maven仓库、Jcenter仓库
版权声明:本文为sydMobile原创文章,转载请务必注明出处! https://blog.csdn.net/sydMobile/article/details/78460169 文章最早发布于我的微信公众号 Android_De_Home 中,欢迎大家扫描下面二维码关注微信公众获取更多知识内容。
2650 0
|
11月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
存储 数据采集 缓存
布隆过滤器 Bloom Filter
布隆过滤器 Bloom Filter
布隆过滤器 Bloom Filter
|
存储 运维 负载均衡
蚂蚁集团 Service Mesh 进展回顾与展望
继 2019 年的 《蚂蚁集团 Service Mesh 落地实践与挑战》之后,蚂蚁集团在 Service Mesh 方向已经继续探索演进近 3 年。这 3 年里有哪些新的变化,以及对未来的思考是什么,值此 SOFAStack 开源 4 周年之际,欢迎大家一起进入《蚂蚁集团 Service Mesh 进展回顾与展望》章节探讨交流。
336 0
蚂蚁集团 Service Mesh 进展回顾与展望
|
消息中间件 缓存 负载均衡
5种限流算法,7种限流方式,挡住突发流量?(三)
5种限流算法,7种限流方式,挡住突发流量?
939 0