0
点赞
收藏
分享

微信扫一扫

微服务-sentinel降级

杰克逊爱学习 2022-03-12 阅读 72

RT降级

步骤

配置

如下图所示,意思为当1s内有5个请求且相应时间超过200毫秒,则会触发降级
在这里插入图片描述

编码

编写一个相应时间为1s的请求,模拟第二个条件

 @GetMapping("/getD")
    public String getD() {
        //暂停几秒钟线程
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("testD 测试RT");
        return "------testD";
    }

jmeter开线程

  1. 创建线程组
    在这里插入图片描述

  2. 如下图所示,意思为设置一个名字为8401Test的线程组,100个线程,ramp up period为0意思为一口气全部出去,设置为infinite意为无限循环

在这里插入图片描述

  1. 再添加一个http请求

在这里插入图片描述在这里插入图片描述

  1. 运行,这里保存是可选的

在这里插入图片描述
具体可以参照
Jmeter接口压测快速入门

浏览器请求查看被打爆的结果

在这里插入图片描述

RT-异常比例降级

配置

如下图所示,意思为1s内5个,请求且错误率为20%则触发降级

在这里插入图片描述

编码

制造一个百分百错误的请求

@GetMapping("/getD")
    public String getD() {
        
        int i=1/0;
        //暂停几秒钟线程
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("testD 测试RT");
        return "------testD";
    }

测试

进行压测的测试

  1. 使用jmeter请求,继续使用上文所示的压测用例,不多赘述
  2. 浏览器请求,可以看到被降级了
    在这里插入图片描述

未进行压测的测试

可以看到直接走error page

在这里插入图片描述

sentinel-异常数

配置

如下所示,意思为70s内错5次降级
在这里插入图片描述

编码

 @GetMapping("/getE")
    public String getE() {

        int i=1/0;
        //暂停几秒钟线程
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("getE 测试异常数");
        return "------testD";
    }

不断刷新测试

可以看到前5次是这样的

在这里插入图片描述5次之后

在这里插入图片描述

源码地址

https://gitee.com/fugongliudehua/mscloud

举报

相关推荐

0 条评论