• Sentinel隔离和降级-熔断策略


    断路器熔断策略有三种:慢调用、异常比例、异常数

    1.慢调用
    业务的响应时长(RT)大于指定时长的请求认定为慢调用请求。在指定时间内,如果请求数量超过设定的最小数量,慢调用比例大于设定的阈值,则触发熔断。例如:

    解读:RT超过500ms的调用是慢调用,统计最近10000ms内的请求,如果请求量超过10次,并且慢调用比例>=0.5,则触发熔断,熔断时长为5秒。然后进入half-open状态(半开路状态),放行一次请求做测试。

    需求:给 UserClient的查询用户接口设置降级规则,慢调用的RT阈值为50ms,统计时间为1秒,最小请求数量为5,失败阈值比例为0.4,熔断时长为5
    提示:为了触发慢调用规则,我们需要修改UserService中的业务,增加业务耗时:

        /**
         * 路径: /user/110
         *
         * @param id 用户id
         * @return 用户
         */
        @GetMapping("/{id}")
        public User queryById(@PathVariable("id") Long id,
                              @RequestHeader(value = "Truth", required = false) String truth) throws InterruptedException {
            log.info(String.format("userId=%s", id));
            if (id == 1) {
                // 休眠,触发熔断
                Thread.sleep(60);
            } else if (id == 2) {
                throw new RuntimeException("故意出错,触发熔断");
            }
            return userService.queryById(id);
        }

     

    2.熔断策略-异常比例、异常数
    异常比例或异常数:统计指定时间内的调用,如果调用次数超过指定请求数,并且出现异常的比例达到设定的比例阈值(或超过指定异常数),则触发熔断。例如:

    解读:统计最近1000ms内的请求,如果请求量超过10次,并且异常比例不低于0.4,则触发熔断,熔断时长为5秒。然后进入half-open状态,放行一次请求做测试。

    总结
    Sentinel熔断降级的策略有哪些?
    1.慢调用比例:超过指定时长的调用为慢调用,统计单位时长内慢调用的比例,超过阈值则熔断
    2.异常比例:统计单位时长内异常调用的比例,超过阈值则熔断
    3.异常数:统计单位时长内异常调用的次数,超过阈值则熔断

  • 相关阅读:
    二维码生成
    Tomcat 日志文件分割
    java代码优化
    User-Agent 请求消息头
    json
    Access-Control-Allow-Origin跨域请求处理
    Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public xxxxxxxx.
    Nginx的配置文件
    WebService 及 CXF 的进阶讲解
    WebService的讲解 和 CXF 的初步使用
  • 原文地址:https://www.cnblogs.com/linjiqin/p/15374998.html
Copyright © 2020-2023  润新知