zoukankan      html  css  js  c++  java
  • 服务熔断

    1、熔断机制概述

    熔断机制是应对雪崩效应的一种微服务链路保护机制。当删除链路的某个微服务出错不可用或者响应太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。

    当检测到该节点微服务调用响应正常后,恢复调用链路

    在Spring Cloud 框架里,熔断机制通过Hystrix 实现。Hystrix 会监控微服务间调用的状况。

    当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand

    2、服务熔断 - 服务提供端

    2.1 service层 添加代码

    2.2 controller 层 添加对应的方法测试

    3、熔断类型

    3.1 熔断打开

    请求不再进行调用当前服务,内部设置时钟一般为 MTTR(平均故障处理时间),当打开时长达到所设时钟则进入半熔断状态

    3.2 熔断关闭

    熔断关闭不会对服务进行熔断

    3.3 熔断半开

    部分请求根据规则调用当前服务,如果请求成功且符合规则则认为当前服务恢复正常,关闭熔断

    4、断路器在什么情况下会打开

    涉及到三个重要的参数:快照时间窗请求总数阀值错误百分比阀值

    1. 快照时间窗:断路器确定是否打开需要统计一些请求和错误数据,而统计的时间范围就是快照时间窗,默认为最近的10秒
    2. 请求总数阀值:在快照时间窗内,必须满足请求总数阀值才有资格熔断。默认为20,意味着在10秒内,如果该hystrix命令的调用次数不足20次,即使所有的请求都超时或其他原因失败,断路器不会打开。
    3. 错误百分比阀值:当请求总数在快照时间窗内超过了阀值,比如发生了30次调用,如果在这30次调用中,有15次发生了超时异常,也就是超过50%的错误百分比,在默认设定50%阀值的情况下,这时候就会将断路器打开。

    5、断路器关闭的条件

    1. 当满足一定的阀值的时候(默认10秒内超过20个请求次数)
    2. 当失败率达到一定的时候(默认10秒内超过50%的请求失败)
    3. 达到以上阀值,断路器将会开启
    4. 当开启的时候,所有的请求都不会转发
    5. 一段时间之后(默认是5秒),这个时候断路器是半开状态,会让其中一个请求进行转发。如果成功,断路器会关闭,若失败,继续开启。重复4和5
  • 相关阅读:
    day59_BOS项目_11
    day58_BOS项目_10
    shell 笔记
    docker + swarm 集群
    HDFS深入浅析
    FTP服务器常规操作
    linux shell 流程控制
    认识黑客常用的入侵方法
    Linux中常用的查看系统信息的命令
    解决Yum安装依赖问题
  • 原文地址:https://www.cnblogs.com/KingTL/p/14237849.html
Copyright © 2011-2022 走看看