【问题标题】:Hystrix circuit breaker trigger an Event in Spring Micro service implementationHystrix 断路器在 Spring Micro 服务实现中触发事件
【发布时间】:2018-09-11 20:26:38
【问题描述】:
有没有一种方法可以识别 Hystrix 何时从电路开路状态转变为半开路状态(在睡眠时间间隔之后)。当这种状态改变发生时,Hystrix 可以触发事件吗?任何 Hystrix 属性都可以告诉我们这一点吗?如果它可以触发事件,请告诉方法。任何代码示例也会有所帮助。
谢谢,
尼基尔
【问题讨论】:
标签:
java
spring
microservices
hystrix
circuit-breaker
【解决方案1】:
hystrix 没有办法通知用户状态变化。 Hystrix 在事件通知器中提供了一些变量,但它不包含与状态有关的事件(HALF_OPEN 或 CLOSE)。
可以做的是创建一种机制,可以连续或延迟调用来检查 hystrix 命令的状态。可以通过以下方式获取 hystrix 实例:
HystrixCircuitBreaker circuitBreaker = HystrixCircuitBreaker.Factory.getInstance(HystrixCommandKey.Factory.asKey(name));
并发布此消息,我们执行相应的功能来检查断路器的状态,例如:
circuitBreaker!=null, circuitBreaker.allowRequest(), circuitBreaker.isOpen();
所以你的服务可以使用这些返回的状态。