禁用客户健康检查 - Hystrix

时间:2017-09-18 20:24:49

标签: java spring-boot

有没有办法禁用下面列出的hystrix自定义运行状况检查 -

@Component
@ConditionalOnClass(name = "org.springframework.cloud.netflix.hystrix.HystrixHealthIndicator")
public class XspHystrixHealthIndicator extends AbstractHealthIndicator {

当我检查localhost:8080 / health时,我看到下面的

{
"status": "UP",
"xspHystrix": {
"status": "UP"
},
"manualSwitch": {
"status": "UP"
},
"redis": {
"status": "UP",
"version": "3.0.7"
},
"hystrix": {
"status": "UP"
}
}

我不希望列出xspHystrix和hystrix,他们也不应该参与健康检查。

我添加了以下属性,不再看到hystrix,但我仍然看到xspHystrix,我不想显示它 -

management:
  health:
    hystrix:
      enabled: false
    xspHystrix:
      enabled: false

1 个答案:

答案 0 :(得分:2)

不,如果不更改XspHystrixHealthIndicator.java的代码,则无法执行此操作。

Spring Boot运行状况执行器聚合实现HealthIndicator 的所有Spring bean。如果将XspHystrixHealthIndicator放在组件扫描路径中,它将聚合到Health执行器中。

如果您可以更改XspHystrixHealthIndicator.java,请尝试以下操作。 首先,从@Component中删除@ConditionalOnClassXspHystrixHealthIndicator。然后创建自己的配置类,根据属性加载XspHystrixHealthIndicator bean。它可能看起来像下面的东西。

@Configuration
@ConditionalOnClass(name = "org.springframework.cloud.netflix.hystrix.HystrixHealthIndicator")
public class XpsHystrixAutoConfiguration {   
    @Bean
    @ConditionalOnEnabledHealthIndicator("xspHystrix")
    public XspHystrixHealthIndicator xpsHystrixHealthIndicator() {
        return new XspHystrixHealthIndicator();
    }  
}