zoukankan      html  css  js  c++  java
  • springcloud -- sentinel 降级规则,热点key限流规则

    1、官网文档地址:https://github.com/alibaba/Sentinel/wiki/%E7%86%94%E6%96%AD%E9%99%8D%E7%BA%A7

    Sentinel的断路器是没有半开状态的

     sentinel 使用

    降级:

    慢调用比例:

    选择以慢调用比例作为阈值,需要设置允许的慢调用 RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求响应时间小于设置的慢调用 RT 则结束熔断,若大于设置的慢调用 RT 则会再次被熔断。

      @GetMapping("testD")
        public String testD() {
            try {
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //log.info("TestB运行中.....");
            return "测TestD中RT配置";
        }

     使用jmeter

     再次访问testD

     异常比例:

    当单位统计时长(statIntervalMs)内请求数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。异常比率的阈值范围是 [0.0, 1.0],代表 0% - 100%。

     @GetMapping("testC")
        public String testD1() {
            int i = 10 / 0;
            //log.info("TestB运行中.....");
            return "测TestC中异常比例配置";
        }

    第一次访问:返回报错信息,(这个是有代码带来的)

     快速访问后:

     当停止访问1s后,再次访问,访问返回又是代码返回值。

     异常数:

    当单位统计时长内的异常数目超过阈值之后会自动进行熔断。经过熔断时长后熔断器会进入探测恢复状态(HALF-OPEN 状态),若接下来的一个请求成功完成(没有错误)则结束熔断,否则会再次被熔断。

    访问第六次的时候返回的界面:

    熔断时长设置大于等于1分钟,这里测试的时候曾经设置成1s失效时间也是要1分钟后才失效,找了去年时候官网文档

    上解释的统计时间窗口是分钟级别的,如果时间窗口设置小于60s,则结束熔断状态后任然可能进入熔断状态。

    热点key规则:

      @GetMapping("testHotkey")
        @SentinelResource(value = "testHotkey", /*defaultFallback = "hotkeyHandler"*/blockHandler = "handler")
        public String testHotkey(
                @RequestParam(value = "p1",required = false) String p1,
                @RequestParam(value = "p2",required = false) String p2) {
            return "测试热点key限流";
        }
    
        public String handler(String p1, String p2, BlockException e) {
            return "fdsfdsfdsf " + e.getMessage();
        }
    
        public String hotkeyHandler() {
            return "触发降级方法!";
        }

     参数索引:0代表方法上第一个参数

  • 相关阅读:
    .NET 压缩解压库发布,支持进度查看
    WPF 蒙罩层 LoadingPage
    WPF如何用TreeView制作好友列表、播放列表
    WPF多线程UI更新——两种方法
    .NET责任链模式(混合单例模式,模板方法模式)-----制作与扩展能力验证
    .NET单例模式-------各种写法&&验证
    迭代器模式和组合模式混用
    正确理解DTO、值对象和POCO
    理解POCO
    VM
  • 原文地址:https://www.cnblogs.com/alomsc/p/14923521.html
Copyright © 2011-2022 走看看