0
点赞
收藏
分享

微信扫一扫

微服务-热点key

westfallon 2022-03-12 阅读 48

基础示例

介绍

我们困难会遇到这些场景,比如某些参数请求过于频繁可能导致内存被打爆,所以我们需要监控这个参数,然后做出相应降级策略

配置步骤

编码

如下代码所示,注意blockHandler 如果没有配置后续降级会直接弹出错误页面,而不是返回catchMethod的值

@GetMapping("/getF")
    @SentinelResource(value = "getF", blockHandler  = "catchMethod")
    public String getE(@RequestParam(value = "p1", required = false) String p1, @RequestParam(value = "p2", required = false) String p2) {


        return "------getF p1" + p1 + "  p2  " + p2;
    }

    public String catchMethod(String p1, String p2, BlockException exception) {
        return "catchMethod";
    }

配置

使用SentinelResource注解的value 值进行配置,配置索引0,即对p1的监控,假如p1 qps大于1就会触发这个规则
在这里插入图片描述

测试

可以看到传了p1且狂刷就会报错

在这里插入图片描述

补充,例外值处理

继续上述实验,假如我们规则要求有传p1时走流控,但是p1为6的时候,不走流控该怎么办呢?
只需按照下述配置即可保证p1为6时qps为200,从而达到上述效果

在这里插入图片描述

全局流控规则配置

配置也很简单,如下图所示即可完成全局的监控

在这里插入图片描述

源码地址

https://gitee.com/fugongliudehua/mscloud

举报

相关推荐

0 条评论