1.Sentinel热点规则
1.1 热点概述
何为热点?热点即经常访问的数据。
比如:
商品 ID 为参数,统计一段时间内最常购买的商品 ID 并进行限制.
用户 ID 为参数,针对一段时间内频繁访问的用户 ID 进行限制。
仅对包含热点参数的资源调用生效, Sentinel会利用 LRU 策略统计最近最常访问的热点参数,结合令牌桶算法来进行参数级别的流控。
1.2 案例-设置热点限流
//http://ip:port/consumer/doFindById?id=10
@GetMapping("/consumer/findById")
@SentinelResource("res")
public String doFindById(@RequestParam("id") Integer id){
return "resource id is "+id;
}
热点规则的限流模式只有QPS模式(这才叫热点)。参数索引为@SentinelResource注解的方法参数下标,0代表第一个参数,1代表第二个参数。单机阈值以及统计窗口时长表示在此窗口时间超过阈值就限流。
测试结果:
1.3 特定参数设置
表示参数值为10时 ,限流 阈值为2, 参数值为20时 ,限流 阈值为2,
其它参数值阈值为1 , 限流阈值 是每秒允许请求次数
面试点
1.如何理解热点数据?(访问频度比较高的数据,某些商品、谋篇文章、某个视频)
2.热点数据的限流规则是怎样的?(主要是针对参数进行限流设计)
3.热点数据中的特殊参数如何理解?(热点限流中的某个参数值的阈值设计)
4.对于热点数据的访问出现限流以后底层异常是什么?(ParamFlowException)
1.4 Sentinel系统规则
Sentinel的系统保