【高性能网关soul学习】16. 熔断插件之Hystrix

本文介绍了如何在Soul网关中配置和使用Hystrix熔断插件,详细讲解了Hystrix的启动流程、隔离模式,如semaphore和thread,并探讨了关键配置参数,如跳闸最小请求数量、错误百分比阀值和最大并发量。通过源码分析,理解Soul-Hystrix的实现细节,包括获取属性、上下文信息,以及如何根据隔离策略创建HystrixCommand。最后,文章指出Soul-Hystrix的配置相对简单,但需要一定的RxJava基础知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【高性能网关soul学习】16. 熔断插件之Hystrix

本文目标:

  1. 跑通熔断插件 Hystrix
  2. 分析 Soul 中 hystrix 源码实现

官网地址


Hystrix 插件启动流程
  • soul-bootstrap 增加 soul-spring-boot-starter-plugin-hystrix 依赖

  • 依次启动 soul-admin、http测试服务、soul-bootstrap 网关服务

  • 参考选择器配置规则 进行配置

    • hystrix 的隔离模式分为两种

      1. semaphore
      2. thread配置
        1. 相比semaphore 多了线程池相关的三个配置项
    • 通用参数:

      • 跳闸最小请求数量 :最小的请求量,至少要达到这个量才会触发熔断
      • 错误百分比阀值 : 这段时间内,发生异常的百分比。
      • 最大并发量 : 最大的并发量
      • 跳闸休眠时间(ms) :熔断以后恢复的时间。
      • 分组Key: 一般设置为:contextPath
      • 命令Key: 一般设置为具体的 路径接口。

修改 跳闸最小请求数量错误百分阈值都为1,然后在 http测试服务中的 OrderController中的对应接口 打上断点,第一次请求超时失败之后,立马请求第二次,则会立马得到下述异常

{
   
    "code": 500,
    "message": "Internal Server Error",
    "data": "/order/findById short-circuited and fallback failed."
}
源码分析
  1. 获取相关属性
    1. 获取上下文相关内容:SoulContext、HystrixHandle
    2. 设置默认值groupKey 和 commandKey
  2. 根据 HystrixHandle.getExecutionIsolationStrategy() 类型创建 HystrixCommand 或者 HystrixCommandOnThread
  3. command.isCircuitBreakerOpen()
    1. 判断是否
@Override
protected Mono<Void> doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final R
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值