我们是否有办法识别Hystrix从电路开路到半开状态(睡眠时间间隔后)。当这种状态变化发生时,Hystrix可以触发一个事件吗?Hystrix的任何属性可以告诉我们吗?如果它可以触发事件,请告诉我们方法。任何代码示例也将是有益的。
谢谢,Nikhil
没有任何方法可以让Hystrix通知用户状态变化。Hystrix在事件通知器中提供了一些变量,但它不包含与状态有关的事件(HALF_OPEN或CLOSE)。
我们可以做的是创建一个机制,连续或延迟调用来检查hystrix命令的状态。hystrix实例可以通过以下方式获取。
HystrixCircuitBreaker circuitBreaker = HystrixCircuitBreaker.Factory.getInstance(HystrixCommandKey.Factory.asKey(name));
然后我们做各自的函数来检查断路器的状态,比如 。
circuitBreaker!=null, circuitBreaker.allowRequest(), circuitBreaker.isOpen();
所以你的服务可以使用这些返回的状态。