HystrixLearn(1)

https://github.com/Netflix/hystrix/wiki

1. Hystrix需求场景

在分布式系统中,不可避免的会遇到 依赖的其他服务出现失败情况,

多个后端程序,一个host多个模块依赖. 通过分布式,部署在n个机器上,大量的请求,到host上,后边需要使用多个依赖服务,当某一个依赖服务出现问题,则相关的请求累计在host上,很容易引发系统崩溃,主host崩溃,影响其他依赖的正常使用

2. 简单功能概述

HYXTRIX提供了通过添加延迟容忍,可容忍判断逻辑来帮助 协调各个分布式 依赖服务的情况. 通过在服务之间添加 隔离点,来提供给用户 停止失败叠加累计,和异常响应机制等功能. 提高系统整体弹性

3. 支持的功能

  1. 当通过第三方放依赖出现失败,提供容错保护
  2. 在分布式系统中,针对某个依赖 停止失败叠加(某个依赖出现异常,就不全请求,导致整个服务崩溃)
  3. 应急保护机制(提供 失败后的处理方法)
  4. 近乎实时的 监控 警告 和 操作控制

4. 实现原理

  1. 将所有的请求都封装到HyxtrixCommand 或HyxtrilObserverCommand对象中,对象通常再单独线程中执行(命令模式的一种实践)
  2. 支持自定义超时阈值
  3. 为每个依赖服务,维护一个线程池,如果一旦放满,立刻拒绝服务,不会在队列中排队
  4. 度量成功、失败(客户机抛出的异常)、超时和线程拒绝
  5. 可以在指定周期断开 对某个依赖服务的所有请求,或者 当失败率到指定比例 自动断开(熔断)
  6. 失败会 会有 应急计划 fallback方法
posted @ 2019-05-16 15:02  生画微机  阅读(136)  评论(0编辑  收藏  举报