本文共 1072 字,大约阅读时间需要 3 分钟。
何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如:
热点参数限流会统计传入参数中的热点参数,并根据配置的限流阈值与模式,对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制,仅对包含热点参数的资源调用生效。
//热点限流 @GetMapping("/testHotKey") @SentinelResource(value = "testHotKey", blockHandler = "deal_testHotKey") public String testHotKey(@RequestParam(value = "p1", required = false) String p1, @RequestParam(value = "p2", required = false) String p2) { return "*****testHotKey"; } public String deal_testHotKey (String p1, String p2, BlockException exception) { return "****deal_testHotKey"; }
配置:索引为第0个的参数(p1)阈值为1
携带p1参数快速多次访问:
携带p2参数快速访问多次:
同时携带p1和p2参数快速访问:
上述案例在访问超过1秒1个后马上被限流。但是,我们希望p1参数当它时某个特殊值时,它的限流值和平时不一样。
比如:当p1=5时,它的阈值可以达到200;其它值仍然为1
携带p1=5快速多次访问:正常
携带p1=3快速多次访问:触发blockHandler方法
注意:
转载地址:http://mppqb.baihongyu.com/