写点什么

hystrix

作者:想要飞的猪
  • 2022 年 9 月 29 日
    广东
  • 本文字数:692 字

    阅读完需:约 2 分钟

hystrix 熔断器

名词解释:

扇入:代表的是该微服务组件被调用的次数,扇入越大说明该模块复用性很好;

扇出:表示该模块调用其他微服务组件的数量,扇出越大表明该微服务越复杂;

雪崩效应:比如微服务 A 在调用 B 时和 C 时,B 与 C 又调用其他的微服务,也就是所谓的扇出,当其中一个扇出链路有问题时一直超时或者不可用,导致 对 A 的调用就使用越来越多的多的系统资源,导致 A 奔溃,也就是扇出链路有问题导致整个系统不可用的现象,称为雪崩效应。

  • 服务熔断:

在服务出现问题时,超时或者不可用时,快速返回错误的响应信息,当微服务正常之后在进行调用返回正确的信息。

  • 服务降级:

在一些系统资源不够用时,把一些不仅要的服务暂时停掉(在调用的时候返回一个兜底的数据),保证整个系统的可用性

  • 服务限流:

当一些场景不适合服务降级时(如秒杀,抢购),而流量过大会导致系统不可用时,可以采用限流的形式;

舱壁模式:

默认的 hystrix 有 10 个线程,为所有添加了 @HystrixCommand 的方法共用,,如果这 10 线程满了 其他的线程请求会等待或者时拒绝,如果不进行设置所有的熔断方法都使用者 10 个线程则很容易导致线程使用完,从而进行熔断,所以为了避免出现这种情况,可以为每一个添加了 @HystrixCommand 方法单独添加一个线程池,这种模式叫做舱壁模式,是一种线程隔离手段。

hystrix 工作流程

  1. 当调用服务出现问题时,开启一个事件窗口(默认十秒);

  2. 再这个时间窗口内统计调用次数看是否达到了最小请求数,以及失败调用的百分比看是否达到了配置的阈值,达到则跳闸,否则回到第一步;

  3. 当跳闸后会开启一个活动窗口(默认 5 秒),当达到这个窗口时放过一个请求到有问题的服务器,如果成功则回到第 1 步,否则回到第三步。

用户头像

还未添加个人签名 2020.06.05 加入

还未添加个人简介

评论

发布
暂无评论
hystrix_Hystrix_想要飞的猪_InfoQ写作社区