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

前言

我们可以使用 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

相关推荐

  1. spring boot dynamic 动态数据数据配置连接

    2024-03-24 06:02:06       36 阅读
  2. Druid数据库连接配置

    2024-03-24 06:02:06       47 阅读
  3. Springboot_Tomcat数据库连接配置

    2024-03-24 06:02:06       62 阅读
  4. springboot多数据支持自定义连接

    2024-03-24 06:02:06       67 阅读
  5. SpringBoot连接mysql数据库相关配置(druid连接

    2024-03-24 06:02:06       58 阅读
  6. 数据库连接】01:连接初始化

    2024-03-24 06:02:06       58 阅读
  7. JDBC数据库连接

    2024-03-24 06:02:06       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-24 06:02:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-24 06:02:06       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-24 06:02:06       82 阅读
  4. Python语言-面向对象

    2024-03-24 06:02:06       91 阅读

热门阅读

  1. 数据库处理函数

    2024-03-24 06:02:06       33 阅读
  2. Python编程异步爬虫——协程的基本原理

    2024-03-24 06:02:06       35 阅读
  3. Scala第十一章节(正则表达式和异常处理)

    2024-03-24 06:02:06       36 阅读
  4. Python XML 解析

    2024-03-24 06:02:06       40 阅读
  5. 特种兵旅游-扬州、南京

    2024-03-24 06:02:06       37 阅读
  6. vue3之声明式和编程式导航

    2024-03-24 06:02:06       44 阅读
  7. 5.83 BCC工具之tcplife.py解读

    2024-03-24 06:02:06       38 阅读