日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

druid 多数据源_Druid连接池的使用以及注意事项

發(fā)布時(shí)間:2025/3/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 druid 多数据源_Druid连接池的使用以及注意事项 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Druid連接池其實(shí)在網(wǎng)上一找一大堆文章,講實(shí)話這里也只是作為自己記錄下使用如何使用這個(gè)連接池。好的,廢話不多說。

什么是Druid連接池?

Druid首先是一個(gè)數(shù)據(jù)庫(kù)連接池。Druid連接池是阿里巴巴開源的數(shù)據(jù)庫(kù)連接池項(xiàng)目。Druid連接池為監(jiān)控而生,內(nèi)置強(qiáng)大的監(jiān)控功能,監(jiān)控特性不影響性能。內(nèi)置了StatFilter功能,能采集非常完備的連接池執(zhí)行信息,Druid連接池內(nèi)置了一個(gè)監(jiān)控頁面,提供了非常完備的監(jiān)控信息,可以快速診斷系統(tǒng)的瓶頸。

開始使用

我們簡(jiǎn)單的建立一個(gè)SpringBoot項(xiàng)目,引入Druid連接池。

<!--實(shí)現(xiàn)對(duì) Druid 連接池的自動(dòng)化配置--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.21</version></dependency> <!-- <dependency>--> <!-- <groupId>com.alibaba</groupId>--> <!-- <artifactId>druid</artifactId>--> <!-- <version>1.0.18</version>--> <!-- </dependency>-->

druid-spring-boot-starter實(shí)現(xiàn)對(duì) Druid 連接池的自動(dòng)化配置,在application中進(jìn)行配置

spring:application:name: druidDemodatasource:url: jdbc:mysql://rm-xxxxxxx.mysql.rds.aliyuncs.com/luu_mall?useSSL=false&useUnicode=true&characterEncoding=UTF-8driver-class-name: com.mysql.jdbc.Driverusername: xxx # 數(shù)據(jù)庫(kù)賬號(hào)password: xxx@ # 數(shù)據(jù)庫(kù)密碼type: com.alibaba.druid.pool.DruidDataSource # 設(shè)置類型為 DruidDataSource# Druid 自定義配置,對(duì)應(yīng) DruidDataSource 中的 setting 方法的屬性druid: # 設(shè)置 Druid 連接池的自定義配置。然后 DruidDataSourceAutoConfigure 會(huì)自動(dòng)化配置 Druid 連接池。min-idle: 0 # 池中維護(hù)的最小空閑連接數(shù),默認(rèn)為 0 個(gè)。max-active: 20 # 池中最大連接數(shù),包括閑置和使用中的連接,默認(rèn)為 8 個(gè)。filter:stat: # 配置 StatFilter ,對(duì)應(yīng)文檔 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilterlog-slow-sql: true # 開啟慢查詢記錄slow-sql-millis: 5000 # 慢 SQL 的標(biāo)準(zhǔn),單位:毫秒merge-sql: true # SQL合并配置stat-view-servlet: # 配置 StatViewServlet ,對(duì)應(yīng)文檔 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AEenabled: true # 是否開啟 StatViewServletlogin-username: root # 賬號(hào)login-password: root # 密碼

其他的什么mapper啥的配置就不說了,相信給位大佬不用說都知道,畢竟都是經(jīng)常寫的東西。

@SpringBootTest

寫個(gè)測(cè)試類執(zhí)行以下就知道咯。

然后我們看下監(jiān)控臺(tái),訪問http://127.0.0.1:8080/druid/datasource.html登錄后

奈斯,以后老大要我查看慢sql就用這個(gè)了。

多數(shù)據(jù)源配置

以上呢是配置的單數(shù)據(jù)源,那么有些場(chǎng)景呢需要使用到多數(shù)據(jù)源,這里說下多數(shù)據(jù)源druid怎么配置的。

spring:application:name: druidDemodatasource:mall:url: jdbc:mysql://rm-wz9yy0528x91z1iqdco.mysql.rds.aliyuncs.com/luu_mall?useSSL=false&useUnicode=true&characterEncoding=UTF-8driver-class-name: com.mysql.jdbc.Driverusername: root # 數(shù)據(jù)庫(kù)賬號(hào)password: root0319@ # 數(shù)據(jù)庫(kù)密碼type: com.alibaba.druid.pool.DruidDataSource # 設(shè)置類型為 DruidDataSourcemin-idle: 0 # 池中維護(hù)的最小空閑連接數(shù),默認(rèn)為 0 個(gè)。max-active: 20 # 池中最大連接數(shù),包括閑置和使用中的連接,默認(rèn)為 8 個(gè)。# 用戶數(shù)據(jù)源配置users:url: jdbc:mysql://rm-wz9yy0528x91z1iqdco.mysql.rds.aliyuncs.com/luu_user_center?useSSL=false&useUnicode=true&characterEncoding=UTF-8driver-class-name: com.mysql.jdbc.Driverusername: root # 數(shù)據(jù)庫(kù)賬號(hào)password: root0319@ # 數(shù)據(jù)庫(kù)密碼type: com.alibaba.druid.pool.DruidDataSource # 設(shè)置類型為 DruidDataSource# Druid 自定義配置,對(duì)應(yīng) DruidDataSource 中的 setting 方法的屬性min-idle: 0 # 池中維護(hù)的最小空閑連接數(shù),默認(rèn)為 0 個(gè)。max-active: 20 # 池中最大連接數(shù),包括閑置和使用中的連接,默認(rèn)為 8 個(gè)。# Druid 自定義配置,對(duì)應(yīng) DruidDataSource 中的 setting 方法的屬性druid: # 設(shè)置 Druid 連接池的自定義配置。然后 DruidDataSourceAutoConfigure 會(huì)自動(dòng)化配置 Druid 連接池。filter:stat: # 配置 StatFilter ,對(duì)應(yīng)文檔 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilterlog-slow-sql: true # 開啟慢查詢記錄slow-sql-millis: 5000 # 慢 SQL 的標(biāo)準(zhǔn),單位:毫秒merge-sql: true # SQL合并配置stat-view-servlet: # 配置 StatViewServlet ,對(duì)應(yīng)文檔 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AEenabled: true # 是否開啟 StatViewServletlogin-username: root # 賬號(hào)login-password: root # 密碼

配置類

@Configuration public class DataSourceConfig {/*** 創(chuàng)建 orders 數(shù)據(jù)源*/@Primary@Bean(name = "mallDataSource")@ConfigurationProperties(prefix = "spring.datasource.mall") // 讀取 spring.datasource.mall配置到 HikariDataSource 對(duì)象public DataSource ordersDataSource() {return DruidDataSourceBuilder.create().build();}/*** 創(chuàng)建 users 數(shù)據(jù)源*/@Bean(name = "usersDataSource")@ConfigurationProperties(prefix = "spring.datasource.users")public DataSource usersDataSource() {return DruidDataSourceBuilder.create().build();}}

測(cè)試類中測(cè)試方法

private Logger logger = LoggerFactory.getLogger(DruidDemoApplicationTests.class);@Resource(name = "mallDataSource")private DataSource ordersDataSource;@Resource(name = "usersDataSource")private DataSource usersDataSource;@Testpublic void test() {// orders 數(shù)據(jù)源logger.info("[run][獲得數(shù)據(jù)源:{}]", ordersDataSource.getClass());// users 數(shù)據(jù)源logger.info("[run][獲得數(shù)據(jù)源:{}]", usersDataSource.getClass());int a = testMapper.test();System.out.println(a);}

這樣就等于配置了多個(gè)數(shù)據(jù)源,具體的怎么用呢就要看具體的場(chǎng)景了。

其實(shí)多數(shù)據(jù)源的配置常用的有三種方式:

擴(kuò)展Spring的AbstractRoutingDataSource 通過Mybatis 配置不同的 Mapper 使用不同的 SqlSessionTemplate 分庫(kù)分表中間件,比如Sharding-JDBC 、Mycat等。

這里就不細(xì)說咯,后面我們用到了再來記錄下使用過程。

總結(jié)

以上是生活随笔為你收集整理的druid 多数据源_Druid连接池的使用以及注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。