小工具知识网

当前位置: 首页 > 行业知识 > spring boot dynamic 动态数据数据源配置连接池

行业知识

spring boot dynamic 动态数据数据源配置连接池

2026-11-12 07:35:09 来源:互联网转载

前言

我们可以使用 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秒)。默认值:0         leakDetectionThreshold:         # 此属性控制池中连接的最大生存期 值为0表示没有最大生存期(无限生存期),当然取决于idleTimeout设置。最小允许值为30000ms(30秒)。默认值:1800000(30分钟)         maxLifetime:         # 初始化失败超时时间 即 到了指定时间还没初始化完成就算失败         initializationFailTimeout:         # 连接初始化SQL         connectionInitSql:         # 连接查询测试SQL         connectionTestQuery:         # 数据源类名         dataSourceClassName: com.zaxxer.hikari.HikariDataSource         dataSourceJndiName:         # 事务隔离级别名称         transactionIsolationName:         # 自动提交         isAutoCommit:         # 是否只读         isReadOnly:         # 是否隔离内部查询         isIsolateInternalQueries:         # 是否注册 mbean         isRegisterMbeans:         # 是否允许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:         # 验证查询SQL         validationQuery:         # 验证查询超时时间         validationQueryTimeout:         # 使用全局数据源统计         useGlobalDataSourceStat:         # 异步初始化         asyncInit:         # 配置监控统计拦截的filters         filters: stat         clearFiltersEnable:         # 重置统计开关         resetStatEnable:         notFullTimeoutRetryCount:         # 最大等待线程数量         maxWaitThreadCount:         # 快速失败         failFast:         phyTimeoutMillis:         # 保持连接开关 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。         keepAlive:         # ps pool开关         poolPreparedStatements:         initVariants:         initGlobalVariants:         # 使用非公平锁         useUnfairLock:         # socket读取超时 kill         killWhenSocketReadTimeout:         # 每个连接 最大ps 池数量         maxPoolPreparedStatementPerConnectionSize:         # 共享ps         sharePreparedStatements:         # 连接错误重试次数         connectionErrorRetryAttempts:         # 配置获取锁失败多少次 中断         breakAfterAcquireFailure:         removeAbandoned:         removeAbandonedTimeoutMillis:         # 查询超时时间         queryTimeout:         # 事务查询超时时间         transactionQueryTimeout:         # 连接超时时间         connectTimeout:         # socket 连接超时时间         socketTimeout:      datasource:        ds1:          url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic          username: root          password: 123456          driver-class-name: com.mysql.cj.jdbc.Driver          #type: com.zaxxer.hikari.HikariDataSource          type: 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秒)。默认值:0            leakDetectionThreshold:            # 此属性控制池中连接的最大生存期 值为0表示没有最大生存期(无限生存期),当然取决于idleTimeout设置。最小允许值为30000ms(30秒)。默认值:1800000(30分钟)            maxLifetime:            # 初始化失败超时时间 即 到了指定时间还没初始化完成就算失败            initializationFailTimeout:            # 连接初始化SQL            connectionInitSql:            # 连接查询测试SQL            connectionTestQuery:            # 数据源类名            dataSourceClassName: com.zaxxer.hikari.HikariDataSource            dataSourceJndiName:            # 事务隔离级别名称            transactionIsolationName:            # 自动提交            isAutoCommit:            # 是否只读            isReadOnly:            # 是否隔离内部查询            isIsolateInternalQueries:            # 是否注册 mbean            isRegisterMbeans:            # 是否允许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:            # 验证查询SQL            validationQuery:            # 验证查询超时时间            validationQueryTimeout:            # 使用全局数据源统计            useGlobalDataSourceStat:            # 异步初始化            asyncInit:            # 配置监控统计拦截的filters            filters: stat            clearFiltersEnable:            # 重置统计开关            resetStatEnable:            notFullTimeoutRetryCount:            # 最大等待线程数量            maxWaitThreadCount:            # 快速失败            failFast:            phyTimeoutMillis:            # 保持连接开关 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。            keepAlive:            # ps pool开关            poolPreparedStatements:            initVariants:            initGlobalVariants:            # 使用非公平锁            useUnfairLock:            # socket读取超时 kill            killWhenSocketReadTimeout:            # 每个连接 最大ps 池数量            maxPoolPreparedStatementPerConnectionSize:            # 共享ps            sharePreparedStatements:            # 连接错误重试次数            connectionErrorRetryAttempts:            # 配置获取锁失败多少次 中断            breakAfterAcquireFailure:            removeAbandoned:            removeAbandonedTimeoutMillis:            # 查询超时时间            queryTimeout:            # 事务查询超时时间            transactionQueryTimeout:            # 连接超时时间            connectTimeout:            # socket 连接超时时间            socketTimeout:        ds2:          url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic          username: root          password: 123456          driver-class-name: com.mysql.cj.jdbc.Driver

上一篇:Cf官方服务器怎么下载?

下一篇:linuxftp怎么连接到服务器?