XspHystrixHealthIndicator

XspHystrixHealthIndicator

有没有办法禁用下面列出的针对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

最佳答案

不,如果不更改XspHystrixHealthIndicator.java代码,您将无法做到。

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

如果可以更改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();
    }
}

07-26 03:17