2021年9月

面试题,程序员面试题,Java面试题,Hystrix 隔离策略细粒度控制,Hystrix线程池隔离,Hystrix信号量隔离,execution.isolation.semaphore.maxConcurrentRequests,command key,command group,command thread pool,queueSizeRejectionThreshold

Hystrix 隔离策略细粒度控制

Hystrix 实现资源隔离,有两种策略:

  • 线程池隔离
  • 信号量隔离

对资源隔离这一块东西,其实可以做一定细粒度的一些控制。

execution.isolation.strategy

- 阅读剩余部分 -

面试题,程序员面试题,Java面试题,Hystrixcommand,Requestcache,RequestContex,HystrixObservableCommand

Hystrix command 执行时 8 大步骤第三步,就是检查 Request cache 是否有缓存。

首先,有一个概念,叫做 Request Context 请求上下文,一般来说,在一个 web 应用中,如果我们用到了 Hystrix,我们会在一个 filter 里面,对每一个请求都施加一个请求上下文。就是说,每一次请求,就是一次请求上下文。然后在这次请求上下文中,我们会去执行 N 多代码,调用 N 多依赖服务,有的依赖服务可能还会调用好几次。

- 阅读剩余部分 -

面试题,程序员面试题,Java面试题,Hystrix高可用,Hystrix资源隔离,Hystrix限流,HystrixCommand,Hystrix缓存,Hystrix线程池,Hystrix队列,Hystrix信号量,Hystrix短路健康检查

前面我们了解了 Hystrix 最基本的支持高可用的技术:资源隔离 + 限流

  • 创建 command;
  • 执行这个 command;
  • 配置这个 command 对应的 group 和线程池。

这里,我们要讲一下,你开始执行这个 command,调用了这个 command 的 execute() 方法之后,Hystrix 底层的执行流程和步骤以及原理是什么。

- 阅读剩余部分 -

面试题,程序员面试题,Java面试题,Hystrix断路器执行原理,Hystrix断路器,状态机,Enabled,ForceOpen,ForceClosed,Metrics 统计器,断路测试

深入 Hystrix 断路器执行原理

状态机

Hystrix 断路器有三种状态,分别是关闭(Closed)、打开(Open)与半开(Half-Open),三种状态转化关系如下:

hystrix-circuit-breaker-state-machine.png

  1. Closed 断路器关闭:调用下游的请求正常通过
  2. Open 断路器打开:阻断对下游服务的调用,直接走 Fallback 逻辑
  3. Half-Open 断路器处于半开状态:SleepWindowInMilliseconds

- 阅读剩余部分 -