最新文章

Hystrix工作原理一

Hystrix工作原理一

运行时的流程图

图片来自netflix hystrix

  1. 构建HystrixCommand或者HystrixObservableCommand对象

    第一步是构建一个HystrixCommand或HystrixObservableCommand对象来代表对依赖服务所做的请求。 将在请求发生时将需要的任何参数传递给构造函数。

    如果依赖的服务预期会返回单一的响应, 构造一个HystrixCommand对象, 例如:

    HystrixCommand command = new HystrixCommand(arg1, arg2);
    

    如果依赖的服务预期会返回一个发出响应的Observable对象, 则构造一个HystrixObservableCommand对象, 例如:

    HystrixObservableCommand command = new HystrixObservableCommand(arg1, arg2);
    
  2. 执行Command

  3. 响应是否被缓存?

    如果Command的缓存请求被开启, 同时请求的响应在缓存中可用, 缓存的响应被立即以一个Observable的方式返回.

  4. 断路器是否开启?

    执行Command时, Hystrix会检查断路器(circuti-breaker)是否开始回路(circuit).

    如果回路开启, Hystrix将不会执行Command, 而直接去到流程8: Get the Fallback 如果关闭, 则执行流程5检查是否有足够的容量来运行该命令