有没有办法禁用下面列出的针对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
中删除@ConditionalOnClass
和XspHystrixHealthIndicator
。然后创建自己的配置类,该配置类将基于属性加载XspHystrixHealthIndicator
bean。它可能看起来像下面的东西。
@Configuration
@ConditionalOnClass(name = "org.springframework.cloud.netflix.hystrix.HystrixHealthIndicator")
public class XpsHystrixAutoConfiguration {
@Bean
@ConditionalOnEnabledHealthIndicator("xspHystrix")
public XspHystrixHealthIndicator xpsHystrixHealthIndicator() {
return new XspHystrixHealthIndicator();
}
}