前言
我们可以使用 dynamic-datasource 来快速实现多数据源,但是多数据源配置连接池 以及说明文档都是收费的。 这里整理的连接池的配置以及配置说明
连接池配置 (druid或者 hikari 选择一个即可)
特此说明 如果配置配到了 spring.datasource.dynamic 下 druid 或者 hikari
这表示这个配置将作用于 dynamic 的所有数据源
spring: datasource:dynamic:# 全局配置的hikari 或druid# hikari 官方文档hikari:# 最小空闲数量min-idle: 10# 最小空闲数量minimumIdle:# 连接池最大数量max-pool-size: 100# 连接池最大数量maximum-pool-size:# 连接超时时间connectionTimeout:# 校验超时时间validationTimeout:# 空闲超时时间idleTimeout:# 此属性控制在记录指示可能的连接泄漏的消息之前连接可以离开池的时间量。值为0表示关闭泄漏检测。启用泄漏检测的最低可接受值是2000(2秒)。默认值:0leakDetectionThreshold:# 此属性控制池中连接的最大生存期 值为0表示没有最大生存期(无限生存期),当然取决于idleTimeout设置。最小允许值为30000ms(30秒)。默认值:1800000(30分钟)maxLifetime:# 初始化失败超时时间 即 到了指定时间还没初始化完成就算失败initializationFailTimeout:# 连接初始化SQLconnectionInitSql:# 连接查询测试SQLconnectionTestQuery:# 数据源类名dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedataSourceJndiName:# 事务隔离级别名称transactionIsolationName:# 自动提交isAutoCommit:# 是否只读isReadOnly:# 是否隔离内部查询isIsolateInternalQueries:# 是否注册 mbeanisRegisterMbeans:# 是否允许pool 挂起isAllowPoolSuspension:# 存活时间keepaliveTime:druid:# 官方文档: https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8# 初始化数量 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时initialSize: 50# 最大存活数量maxActive: 50# 最小空闲数量==>最小连接池数量minIdle: 20# 配置获取连接等待超时的时间maxWait:# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis:# 配置间隔多久才进行日志统计,单位是毫秒timeBetweenLogStatsMillis:# 统计SQL最大数量statSqlMaxSize:# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis:# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis:# 是否自动提交defaultAutoCommit:# 是否只读defaultReadOnly:# 默认事务隔离级别defaultTransactionIsolation:# 连接空闲测试testWhileIdle:# 当获取连接测试testOnBorrow:# 当归还连接测试testOnReturn:# 验证查询SQLvalidationQuery:# 验证查询超时时间validationQueryTimeout:# 使用全局数据源统计useGlobalDataSourceStat:# 异步初始化asyncInit:# 配置监控统计拦截的filtersfilters: statclearFiltersEnable:# 重置统计开关resetStatEnable:notFullTimeoutRetryCount:# 最大等待线程数量maxWaitThreadCount:# 快速失败failFast:phyTimeoutMillis:# 保持连接开关 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。keepAlive:# ps pool开关poolPreparedStatements:initVariants:initGlobalVariants:# 使用非公平锁useUnfairLock:# socket读取超时 killkillWhenSocketReadTimeout:# 每个连接 最大ps 池数量maxPoolPreparedStatementPerConnectionSize:# 共享pssharePreparedStatements:# 连接错误重试次数connectionErrorRetryAttempts:# 配置获取锁失败多少次 中断breakAfterAcquireFailure:removeAbandoned:removeAbandonedTimeoutMillis:# 查询超时时间queryTimeout:# 事务查询超时时间transactionQueryTimeout:# 连接超时时间connectTimeout:# socket 连接超时时间socketTimeout:datasource:ds1:url: jdbc:mysql://xx.xx.xx.xx:3306/dynamicusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver#type: com.zaxxer.hikari.HikariDataSourcetype: com.alibaba.druid.pool.DruidDataSource#注意hikari和druid选择一个使用# hikari 官方文档hikari:# 最小空闲数量min-idle: 10# 最小空闲数量minimumIdle:# 连接池最大数量max-pool-size: 100# 连接池最大数量maximum-pool-size:# 连接超时时间connectionTimeout:# 校验超时时间validationTimeout:# 空闲超时时间idleTimeout:# 此属性控制在记录指示可能的连接泄漏的消息之前连接可以离开池的时间量。值为0表示关闭泄漏检测。启用泄漏检测的最低可接受值是2000(2秒)。默认值:0leakDetectionThreshold:# 此属性控制池中连接的最大生存期 值为0表示没有最大生存期(无限生存期),当然取决于idleTimeout设置。最小允许值为30000ms(30秒)。默认值:1800000(30分钟)maxLifetime:# 初始化失败超时时间 即 到了指定时间还没初始化完成就算失败initializationFailTimeout:# 连接初始化SQLconnectionInitSql:# 连接查询测试SQLconnectionTestQuery:# 数据源类名dataSourceClassName: com.zaxxer.hikari.HikariDataSourcedataSourceJndiName:# 事务隔离级别名称transactionIsolationName:# 自动提交isAutoCommit:# 是否只读isReadOnly:# 是否隔离内部查询isIsolateInternalQueries:# 是否注册 mbeanisRegisterMbeans:# 是否允许pool 挂起isAllowPoolSuspension:# 存活时间keepaliveTime:druid:# 官方文档: https://github.com/alibaba/druid/wiki/DruidDataSource%E9%85%8D%E7%BD%AE%E5%B1%9E%E6%80%A7%E5%88%97%E8%A1%A8# 初始化数量 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时initialSize: 50# 最大存活数量maxActive: 50# 最小空闲数量==>最小连接池数量minIdle: 20# 配置获取连接等待超时的时间maxWait:# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis:# 配置间隔多久才进行日志统计,单位是毫秒timeBetweenLogStatsMillis:# 统计SQL最大数量statSqlMaxSize:# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis:# 配置一个连接在池中最大生存的时间,单位是毫秒maxEvictableIdleTimeMillis:# 是否自动提交defaultAutoCommit:# 是否只读defaultReadOnly:# 默认事务隔离级别defaultTransactionIsolation:# 连接空闲测试testWhileIdle:# 当获取连接测试testOnBorrow:# 当归还连接测试testOnReturn:# 验证查询SQLvalidationQuery:# 验证查询超时时间validationQueryTimeout:# 使用全局数据源统计useGlobalDataSourceStat:# 异步初始化asyncInit:# 配置监控统计拦截的filtersfilters: statclearFiltersEnable:# 重置统计开关resetStatEnable:notFullTimeoutRetryCount:# 最大等待线程数量maxWaitThreadCount:# 快速失败failFast:phyTimeoutMillis:# 保持连接开关 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。keepAlive:# ps pool开关poolPreparedStatements:initVariants:initGlobalVariants:# 使用非公平锁useUnfairLock:# socket读取超时 killkillWhenSocketReadTimeout:# 每个连接 最大ps 池数量maxPoolPreparedStatementPerConnectionSize:# 共享pssharePreparedStatements:# 连接错误重试次数connectionErrorRetryAttempts:# 配置获取锁失败多少次 中断breakAfterAcquireFailure:removeAbandoned:removeAbandonedTimeoutMillis:# 查询超时时间queryTimeout:# 事务查询超时时间transactionQueryTimeout:# 连接超时时间connectTimeout:# socket 连接超时时间socketTimeout:ds2:url: jdbc:mysql://xx.xx.xx.xx:3307/dynamicusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver