描述

Hystrix熔断组件&雪崩问题

1、hystrix——熔断组件是什么

  1. 是Netflix开源的一个延迟和容错库
  2. 用于隔离访问远程服务,第三方库,防止出现级联失败

2、作用

  1. 服务降级
  2. 服务熔断
  3. 接近实时的监控
  4. 权限认证

雪崩

什么是雪崩问题

  1. 一个微服务卡掉,就会影响请求,如果请求多了,后面的请求就会堆积
  2. 服务器支持的线程和并发数有限,请求一直堵塞,会导致服务器资源耗尽,从而导致所有其他服务都不可用,形成雪崩效应

如何解决雪崩问题

1)线程隔离

降级(运行核心模块,不核心的则降级处理)—检查每次请求是否超时,或连接池已满

  1. 引入hystrix启动器
  2. 熔断时间,默认1s,6s
  3. 设置超时配置------------放在yml文件中
    Hystrix熔断组件&雪崩问题
  4. 在引导类上加一个注解:@EnableCircuitBreaker
  5. 定义熔断方法:
    1. 局部(要和被熔断的方法返回值和参数列表保持一致)全局(返回值类型要和被熔断的方法一致,参数列表必须为空)
  6. @HystrixCommand(fallbackMethod=“局部熔断方法名”):声明被熔断的方法
  7. @DefaultProperties(defaultFallback=“全局熔断方法名”)

2)服务熔断(不再发送请求)

  1. 熔断器==即断路器:circuit breaker
  2. 熔断机制的原理
    1. 主动熔断------服务调用方法自己判断(反应慢,大量超时)的情况,主动熔断,防止整个系统被拖垮
    2. 自动重连------Hystrix可实现弹性容错–情况好转后,自动重连
  3. 3个状态
    1. closed:关闭—所有请求访问正常

    2. open:打开—所有请求都会被降级

      1. 条件
        1. 一定时间内失败请求达到百分比
        2. 默认失败比例为50%
        3. 请求次数不低于20次
    3. Half Open:半开—

      1. open状态会进入休眠默认5s,随后断路器自动进入半开状态
      2. 释放部分请求通过,若这些请求都是健康的,则完全关闭断路器,否则继续打开,再次循环进入到休眠计时

代码图解
Hystrix熔断组件&雪崩问题
Hystrix熔断组件&雪崩问题

用法步骤

  1. 导包pom
  2. 配置文件
  3. 开启熔断服务

相关文章:

  • 2021-07-09
  • 2021-11-12
  • 2022-12-23
  • 2021-10-07
  • 2021-10-22
  • 2022-01-17
猜你喜欢
  • 2021-11-02
  • 2022-01-07
  • 2021-07-02
相关资源
相似解决方案