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秒)。默认值: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
相关文章:
spring boot dynamic 动态数据数据源配置连接池
前言 我们可以使用 dynamic-datasource 来快速实现多数据源,但是多数据源配置连接池 以及说明文档都是收费的。 这里整理的连接池的配置以及配置说明 连接池配置 (druid或者 hikari 选择一个即可) 特此说明 如果配置配到了 spring.datasour…...
vue3中如何使用 watch 函数来观察响应式数据的变化
前言 在 Vue 3 中,可以使用 watch 函数来观察响应式数据的变化。这个函数可以在组件的 setup 函数中使用。watch()方法还可以实现更多复杂的功能,比如异步获取数据并在数据更新时重新渲染页面。 代码示例 1、以下是一个使用 Vue 3 watch 函数的简单示例…...

自建机房私有云吗?
大家好,我是小码哥,之前一种有没搞清楚公有云、私有云的概念,今天算是弄清楚了,这里给大家分享一下公有云、私有云的区别,以及自建机房算不算私有云! 其实私有云(Private Cloud)和公…...

解决npm init vue@latest证书过期问题:npm ERR! code CERT_HAS_EXPIRED
目录 一. 问题背景 二. 错误信息 三. 解决方案 3.1 临时解决办法 3.2 安全性考量 一. 问题背景 我在试图创建一个新的Vue.js项目时遇到了一个问题:npm init vuelatest命令出现了证书过期的错误。不过这是一个常见的问题,解决起来也简单。 二. 错误…...

缓存和缓存的常用使用场景
想象一下,一家公司在芬兰 Google Cloud 数据中心的服务器上托管一个网站。对于欧洲用户来说,加载可能需要大约 100 毫秒,但对于墨西哥用户来说,加载需要 3-5 秒。幸运的是,有一些策略可以最大限度地减少远程用户的请求延迟。 这些策略称为缓存和内容交付网络 (CDN),它们是…...

模板方法模式(继承的优雅使用)
目录 前言 UML plantuml 类图 实战代码 AbstractRoutingDataSource DynamicDataSource DynamicDataSourceContextHolder 前言 在设计类时,一般优先考虑使用组合来替代继承,能够让程序更加的灵活,但这并不意味着要完全抛弃掉继承。 …...

百度智能云千帆,产业创新新引擎
本文整理自 3 月 21 日百度副总裁谢广军的主题演讲《百度智能云千帆,产业创新新引擎》。 各位领导、来宾、媒体朋友们,大家上午好。很高兴今天在石景山首钢园,和大家一起沟通和探讨大模型的发展趋势,以及百度最近一段时间的思考和…...

Python下载cuda包失败后到成功(方便使用GPU加速运算,显著提高代码运行速度)
一、查询自己电脑上的cuda版本方法: 1.在windows的cmd里查询显卡cuda的版本号,命令行输入:nvidia-smi 2.在NVIDIA控制面板上寻找自己电脑上cuda的版本 二、安装支持的cuda的python cupy库 因为我的电脑上为cuda11.4,所以使用cuda114,不同的版…...

【Flink】Flink 处理函数之基本处理函数(一)
1. 处理函数介绍 流处理API,无论是基本的转换、聚合、还是复杂的窗口操作,都是基于DataStream进行转换的,所以统称为DataStreamAPI,这是Flink编程的核心。 但其实Flink为了更强大的表现力和易用性,Flink本身提供了多…...

【Java - 框架 - Lombok】(2) SpringBoot整合Lombok完成日志的创建使用 - 快速上手;
"SpringBoot"整合"Lombok"完成日志的创建使用 - 快速上手; 环境 “Java"版本"1.8.0_202”;“Lombok"版本"1.18.20”;“Spring Boot"版本"2.5.9”;“Windows 11 专业版_22621…...

linux 系统安装php 8.0.2
1. 安装包准备 https://www.php.net/distributions/php-8.0.22.tar.gz 我下载到 /usr/local/src 这个目录了 cd /usr/local/srcwget https://www.php.net/distributions/php-8.0.22.tar.gz 2. tar 解压 然后进到解压的文件夹 tar -zxvf php-8.0.22.tar.gz cd php-8.0.2…...

你管这破玩意叫网络
你是一台电脑,你的名字叫 A 很久很久之前,你不与任何其他电脑相连接,孤苦伶仃。 直到有一天,你希望与另一台电脑 B 建立通信,于是你们各开了一个网口,用一根网线连接了起来。 用一根网线连接起来怎么就能…...

系统开发实训小组作业week5 —— 用例描述与分析
目录 1、电影管理 1.1、 用例描述 1.2、 活动图 1.3、 界面元素 1.4、 功能 2、用户管理 2.1、 用例描述 2.2、 活动图 2.3、 界面元素 2.4、 功能 1、电影管理 1.1、 用例描述 用例号 UC009-01 用例名称 电影管理 用例描述 管理员实现对电影信息、座位数量、价…...

C语言例4-35:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡、问鸡翁、鸡母和鸡雏各几何?
方法一: 代码如下: //鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡、问鸡翁、鸡母和鸡雏各几何? //方法一: #include<stdio.h> int main(void) {int x…...
Leetcode 167. 两数之和 II - 输入有序数组
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 < index1 < index2 < numbers.…...
Java实体类之间的转换
一.为什么要转换实体类 通常在后端开发中经常不直接返回实体Entity类,经过处理转换返回前端,前端提交过来的对象也需要经过转换Entity实体才做存储。 二.怎么转换 使用的BeanUtils.copyProperties方法虽然可以实现转换,但是比较粗暴&#…...

ESCTF-Web赛题WP
0x01-初次见面-怦然心动:your name? 随便输入一个字 根据提示可以看到 我们需要看源代码 直接 搜索 secret 关键字或者 ESCTF flag ESCTF{K1t0_iS_S0_HAPPy} 0x02-小k的请求 更安全的传参 post 参数为ESCTF 值为 love 自己的ip 同时还有个要求 是需要从度娘转过来 https://www…...

某物登录表单加密
之前分析过某物h5的以及小程序的搜索接口,就是一个aes,秘钥不固定,表单里把秘钥以及密文一起发过去,服务器解密后再把数据加密返回,客户端解密展示到页面上. 这期是关于app的登录,密码登录 声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,…...
2024java面试题
题目:反转一个单链表描述:给定一个单链表的头节点,将其反转,返回反转后的链表的头节点。 题目:合并两个有序链表描述:给定两个有序链表的头节点,将它们合并成一个有序链表,返回合并…...

FebHost:什么是哈萨克斯坦.KZ域名?
哈萨克斯坦,作为中亚地区重要的一员,其国家域名”.kz”正成为这个独立国家在网络世界中的代表。作为一个经济快速发展的国家,哈萨克斯坦的互联网基础设施和网络应用也在蓬勃发展。而.kz域名正是哈萨克斯坦网络身份的重要体现。 作为注册和管理.kz域名的主要机构,哈…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...