我想知道是否存在某種方式來禁用SpringBoot Actuator對特定數據源的監視。不監視健康檢查的特定數據源
方案: 一個微服務使用3個數據源,但是對於一些商業原因,他們中的一個數據源,這是沒有必要的春天引導健康指示符進行監測。
如何禁用一個特定數據源的監視?
提前感謝
胡安·安東尼奧
我想知道是否存在某種方式來禁用SpringBoot Actuator對特定數據源的監視。不監視健康檢查的特定數據源
方案: 一個微服務使用3個數據源,但是對於一些商業原因,他們中的一個數據源,這是沒有必要的春天引導健康指示符進行監測。
如何禁用一個特定數據源的監視?
提前感謝
胡安·安東尼奧
我認爲你必須禁用默認數據源的健康指標,你可以用這個屬性做:
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
來寫入您自己的'多個數據源健康狀況指示器',並只注入您有興趣監控的Datasources
。任何型號爲HealthIndicator
的彈簧豆將自動註冊到health
執行機構,因此您只需讓Spring創建您自定義的HealthIndicator
,它將被執行機構暴露。
對於後臺,您可以看到Spring如何配置默認數據源運行狀況檢查:org.springframework.boot.actuate.autoconfigure.DataSourcesHealthIndicatorConfiguration
。
嗨@ glitch,非常感謝您的評論。你知道Spring Boot中的哪個類添加了關於Datasources的所有bean嗎? – jabrena
@jabrena re:「Spring Boot中的什麼類添加所有關於Datasources的bean」...我認爲這個類是一個很好的開始'org.springframework.boot.actuate.autoconfigure.DataSourcesHealthIndicatorConfiguration'的地方,因爲它是用一個'org.springframework.boot.actuate.autoconfigure.DataSourcesHealthIndicatorConfiguration'必須包含在Spring應用程序上下文中發現的所有'DataSource'實例。 – glytching