spring cloud框架之健康检查(多数据源场景)

spring cloud框架之健康检查

引言:由于业务需要,我们框架中引入了多数据源,我们的持久层框架是spring data jpa,第一个数据源是:mysql,也是我们的主数据源,第二个数据源是:oracle,第三个数据源是sap那边的hana数据库。当引入hana数据库时,发现实例起不来了,报错误的sql语法,经过一番研究,发现是健康机制执行时,会检测每个数据源的健康程度,如果健康,则状态为:UP,如果不健康,状态为:DOWN。伴随着好奇心,我探究了下springcloud中的健康检查机制。

springcloud搭配k8s可以搭建健康检测机制,可以发现不健康的实例,并将其重启。

涉及到数据库相关你的健康检查是个配置累:DataSourceHealthIndicatorAutoConfiguration.class

@Configuration
@ConditionalOnClass({
    JdbcTemplate.class, AbstractRoutingDataSource.class })
@ConditionalOnBean(DataSource.class)
@ConditionalOnEnabledHealthIndicator("db")
@AutoConfigureBefore(HealthIndicatorAutoConfiguration.class)
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class DataSourceHealthIndicatorAutoConfiguration extends
		CompositeHealthIndicatorConfiguration<DataSourceHealthIndicator, DataSource>
		implements InitializingBean {
   

	private final Map<String, DataSource> dataSources;

	private final Collection<DataSourcePoolMetadataProvider> metadataProviders;

	private DataSourcePoolMetadataProvider poolMetadataProvider;

	public DataSourceHealthIndicatorAutoConfiguration(
			ObjectProvider<Map<String, DataSource>> dataSources,
			ObjectProvider<Collection<DataSourcePoolMetadataProvider>> metadataProviders) {
   
		this.dataSources = filterDataSources(dataSources.getIfAvailable());
		this.metadataProviders &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值