热点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


相关文章
|
4天前
|
缓存 负载均衡 NoSQL
基于木舟平台浅谈surging 的热点KEY的解决方法
【11月更文挑战第13天】本文介绍了木舟平台及Surging框架中热点KEY的概念与解决方案。热点KEY指在缓存或分布式系统中频繁访问的数据键,如电商中的热门商品ID。为避免缓存击穿等问题,文章提出了设置热点数据永不过期、多级缓存架构、缓存预热、限流和降级策略以及分布式系统层面的优化等方法。
|
1月前
|
缓存 监控 负载均衡
如何解决Redis热点Key问题?技术干货分享
【10月更文挑战第2天】在Redis的使用过程中,热点Key问题是一个常见的性能瓶颈。热点Key指的是那些被频繁访问的Key,它们可能导致Redis服务器的负载不均衡,进而影响整体性能。本文将深入探讨热点Key问题的成因、影响以及多种解决方案,帮助读者在实际工作中有效应对这一挑战。
51 3
|
4月前
|
SQL 数据处理
数据倾斜问题之WithDistmapjoin方案中热点数据和非热点数据的处理如何解决
数据倾斜问题之WithDistmapjoin方案中热点数据和非热点数据的处理如何解决
48 0
|
4月前
|
存储 算法 缓存
高并发架构设计三大利器:缓存、限流和降级问题之使用RateLimiter来限制操作的频率问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之使用RateLimiter来限制操作的频率问题如何解决
|
6月前
|
安全 NoSQL Redis
RateLimiter 限流 —— 通过切面对单个用户进行限流和黑名单处理
RateLimiter 限流 —— 通过切面对单个用户进行限流和黑名单处理
115 2
|
5月前
|
存储 缓存 NoSQL
缓存:热点key重建优化。
缓存:热点key重建优化。
70 0
|
6月前
|
算法 Sentinel 索引
Sentinel热点参数限流动
Sentinel热点参数限流动
|
存储 缓存 NoSQL
分布式系列教程(07) -分布式Redis缓存 (缓存雪崩&穿透&热点key)
分布式系列教程(07) -分布式Redis缓存 (缓存雪崩&穿透&热点key)
180 0
|
存储 缓存 NoSQL
Redis热点大Key的优化过程
Redis热点大Key的优化过程
257 0
|
监控 Sentinel 微服务
【Sentinel】流控效果与热点参数限流
【Sentinel】流控效果与热点参数限流
378 0
【Sentinel】流控效果与热点参数限流