其他分享
首页 > 其他分享> > spring – 不监视特定的数据源以进行运行状况检查

spring – 不监视特定的数据源以进行运行状况检查

作者:互联网

我想知道是否存在一些方法来禁止SpringBoot Actuator监视特定数据源.

场景:
一个微服务使用3个数据源但是对于某些业务原因,它们是一个数据源,没有必要由Spring Boot Health Indicator监控.

如何禁用某个特定DataSource的监控?

提前谢谢了

Juan Antonio

解决方法:

我认为您必须禁用默认数据源运行状况指示器,您可以使用此属性执行此操作:

management.health.db.enabled=false

然后配置您自己的健康指标,这些指标仅解决您感兴趣的数据源,可能是这样的:

@Autowired
private DataSource dataSourceA;

@Autowired
private DataSource dataSourceB;

@Bean
public DataSourceHealthIndicator dataSourceHealthIndicatorA() {
    return new DataSourceHealthIndicator(dataSourceA);
}

@Bean
public DataSourceHealthIndicator dataSourceHealthIndicatorB() {
    return new DataSourceHealthIndicator(dataSourceB);
}

或者,通过扩展AbstractHealthIndicator并仅向您注入您感兴趣的数据源,编写自己的“多数据源健康指标”.任何类型为HealthIndicator的Spring bean都将自动注册到健康执行器,因此您只需让Spring创建自定义HealthIndicator,它就会被执行器暴露出来.

对于后台,您可以看到Spring如何配置默认数据源运行状况检查:org.springframework.boot.actuate.autoconfigure.DataSourcesHealthIndicatorConfiguration.

标签:spring,spring-boot-2,spring-boot-actuator
来源: https://codeday.me/bug/20190527/1163154.html