N17
中文
中文
  • N17 白皮书
    • 项目介绍
    • 平台亮点
  • 交易模式
    • 铸造
    • 发行
    • 交易
    • 生态激励
  • 技术体系
    • N17多链混合架构
      • UTXO 模型与账户模型
      • 抽象账户合约层和虚拟机的集成
      • EVM集成与交易流程
    • API & WebSocket
    • SpringCloud微服务架构
      • Feign(接口调用)
      • Netflix eureka(注册发现)
      • Ribbon(负载均衡)
      • Hystrix(熔断器)
      • Zuul(微服务网关)
      • SpringCloud( 统一配置服务)
      • Sleuth+ZipKin(跟踪服务)
    • 撮合交易引擎
      • 撮合系统
      • 基准价格选取算法
    • Wallet接口与拓展性
    • SpringSecurity+Web3.0签名验证
    • Seata
      • AT模式(与XA模式在编程模型上保持完全一致)
        • 整体机制
        • 写隔离
        • 读隔离
        • 一阶段过程
        • 二阶段-回滚过程
        • 二阶段-提交过程
      • TCC模式
      • SAGA模式
    • Mongodb数据仓库
      • 数据逻辑结构与存储结构
      • MongoDB相比传统开源数据库优势
  • DAO社区
    • N17 DAO的使命
    • N17 DAO的服务体系
    • N17 DAO的治理流程
    • 全球开发者社区
  • 风险提示与免责声明
Powered by GitBook
On this page
  1. 技术体系
  2. SpringCloud微服务架构

Hystrix(熔断器)

当服务提供者响应非常缓慢,那么就会强制等待消费者对提供者的请求,直到提供者响应或超时。在高负载场景下,如果不做任何处理,此类问题可能会导致服务消费者的资源耗竭甚至整个系统的崩溃(雪崩效应)。Hystrix可以有效防止此类问题发生。Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要通过以下几点实现延迟和容错:

(a)包裹请求:使用HystrixCommand(或HystrixObservableCommand)包裹对依赖的调用逻辑,每个命令在独立线程中执行。这使用了设计模式中的“命令模式”。

(b)跳闸机制:当某服务的错误率超过一定阈值时,Hystrix可以自动或者手动跳闸,停止请求该服务一段时间。

(c)资源隔离:Hystrix为每个依赖都维护了一个小型的线程池(或者信号量)。如果该线程池已满,发往该依赖的请求就被立即拒绝,而不是排队等候,从而加速失败判定。

(d)监控:Hystrix可以近乎实时地监控运行指标和配置的变化,例如成功、失败、超时和被拒绝的请求等。

(e)回退机制:当请求失败、超时、被拒绝,或当断路器打开时,执行回退逻辑。回退逻辑可由开发人员指定。

PreviousRibbon(负载均衡)NextZuul(微服务网关)

Last updated 2 years ago