有没有办法禁用下面列出的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
答案 0 :(得分:2)
不,如果不更改XspHystrixHealthIndicator.java
的代码,则无法执行此操作。
Spring Boot运行状况执行器聚合实现HealthIndicator
的所有Spring bean。如果将XspHystrixHealthIndicator
放在组件扫描路径中,它将聚合到Health执行器中。
如果您可以更改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();
}
}