九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
Spring Boot 集成 Druid 監(jiān)控數(shù)據(jù)源


Druid 介紹

Druid 是阿里巴巴開源平臺上的一個項目,整個項目由數(shù)據(jù)庫連接池、插件框架和 SQL 解析器組成,該項目主要是為了擴(kuò)展 JDBC 的一些限制,可以讓程序員實(shí)現(xiàn)一些特殊的需求,比如向密鑰服務(wù)請求憑證、統(tǒng)計 SQL 信息、SQL 性能收集、SQL 注入檢查、SQL 翻譯等,程序員可以通過定制來實(shí)現(xiàn)自己需要的功能。通常叫"德魯伊的"

Druid 首先是一個數(shù)據(jù)庫連接池,但它不僅僅是一個數(shù)據(jù)庫連接池,還包含了一個 ProxyDriver,一系列內(nèi)置的 JDBC 組件庫,一個 SQL Parser。在 Java 的世界中 Druid 是監(jiān)控做的最好的數(shù)據(jù)庫連接池,在功能、性能、擴(kuò)展性方面,也有不錯的表現(xiàn)。

Druid 有何用?

  • 替換其他 Java 連接池,Druid 提供了一個高效、功能強(qiáng)大、可擴(kuò)展性好的數(shù)據(jù)庫連接池。

  • 可以監(jiān)控數(shù)據(jù)庫訪問性能,Druid 內(nèi)置提供了一個功能強(qiáng)大的 StatFilter 插件,能夠詳細(xì)統(tǒng)計 SQL 的執(zhí)行性能,這對于線上分析數(shù)據(jù)庫訪問性能有很大幫助。

  • 數(shù)據(jù)庫密碼加密。直接把數(shù)據(jù)庫密碼寫在配置文件中,這是不好的行為,容易導(dǎo)致安全問題,DruidDruiver 和 DruidDataSource 都支持 PasswordCallback。

  • SQL 執(zhí)行日志,Druid 提供了不同的 LogFilter,能夠支持 Common-Logging、Log4j 和 JdkLog,可以按需要選擇相應(yīng)的 LogFilter,監(jiān)控應(yīng)用的數(shù)據(jù)庫訪問情況。

  • 擴(kuò)展 JDBC,如果你要對 JDBC 層有編程的需求,可以通過 Druid 提供的 Filter 機(jī)制,很方便編寫 JDBC 層的擴(kuò)展插件。

Spring  Boot快速集成Druid

阿里也未Druid提供了 Spring Boot Starter。官網(wǎng)這樣解釋:

Druid Spring Boot Starter 用于幫助你在 Spring Boot 項目中輕松集成 Druid 數(shù)據(jù)庫連接池和監(jiān)控。

Druid Spring Boot Starter 主要做了哪些事情呢?其實(shí)這個組件包很簡單,主要提供了很多自動化的配置,按照 Spring Boot 的理念對很多內(nèi)容進(jìn)行了預(yù)配置,讓我們在使用的時候更加的簡單和方便。

添加依賴包

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>
<!--自啟動Druid管理后臺-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</dependency>

application.properties中添加druid的配置項

properties
#config druid
#連接池的設(shè)置
#初始化時建立物理連接的個數(shù)
spring.datasource.druid.initial-size=5
#最小連接池數(shù)量
spring.datasource.druid.min-idle=5
#最大連接池數(shù)量 maxIdle已經(jīng)不再使用
spring.datasource.druid.max-active=20
#獲取連接時最大等待時間,單位毫秒
spring.datasource.druid.max-wait=60000
#申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執(zhí)行validationQuery檢測連接是否有效。
spring.datasource.druid.test-while-idle=true
#既作為檢測的間隔時間又作為testWhileIdel執(zhí)行的依據(jù)
spring.datasource.druid.time-between-eviction-runs-millis=60000
#銷毀線程時檢測當(dāng)前連接的最后活動時間和當(dāng)前時間差大于該值時,關(guān)閉當(dāng)前連接
spring.datasource.druid.min-evictable-idle-time-millis=30000
#用來檢測連接是否有效的sql 必須是一個查詢語句
#mysql中為 select 'x'
#oracle中為 select 1 from dual
spring.datasource.druid.validation-query=select 'x'
#申請連接時會執(zhí)行validationQuery檢測連接是否有效,開啟會降低性能,默認(rèn)為true
spring.datasource.druid.test-on-borrow=false
#歸還連接時會執(zhí)行validationQuery檢測連接是否有效,開啟會降低性能,默認(rèn)為true
spring.datasource.druid.test-on-return=false
#當(dāng)數(shù)據(jù)庫拋出不可恢復(fù)的異常時,拋棄該連接
#spring.datasource.druid.exception-sorter=true
#是否緩存preparedStatement,mysql5.5+建議開啟
#spring.datasource.druid.pool-prepared-statements=true
#當(dāng)值大于0時poolPreparedStatements會自動修改為true
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
#配置擴(kuò)展插件
spring.datasource.druid.filters=stat,wall
#通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
#合并多個DruidDataSource的監(jiān)控數(shù)據(jù)
spring.datasource.druid.use-global-data-source-stat=true
#設(shè)置訪問druid監(jiān)控頁的賬號和密碼,默認(rèn)沒有
#spring.datasource.druid.stat-view-servlet.login-username=admin
#spring.datasource.druid.stat-view-servlet.login-password=admin

然后啟動項目。

訪問地址:http://localhost:8080/druid/webapp.html

如果把配置項中

spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin

去掉注釋,再次啟動。

訪問地址:http://localhost:8080/druid/webapp.html

登錄進(jìn)去

首頁會展示項目使用的 JDK 版本、數(shù)據(jù)庫驅(qū)動、JVM 相關(guān)統(tǒng)計信息。根據(jù)上面的菜單可以看出 Druid 的功能非常強(qiáng)大,支持?jǐn)?shù)據(jù)源、SQL 監(jiān)控、SQL 防火墻、URI 監(jiān)控等很多功能。

我們這里請求一下前面文

http://localhost:8080/mybatis

點(diǎn)擊SQL監(jiān)控

可以看到SQL的執(zhí)行情況,還可以設(shè)置刷新SQL監(jiān)控的時間。

這里的 SQL 監(jiān)控會將項目中具體執(zhí)行的 SQL 打印出來,展示此 SQL 執(zhí)行了多少次、每次返回多少數(shù)據(jù)、執(zhí)行的時間分布是什么。這些功能非常的實(shí)用,方便我們在實(shí)際生產(chǎn)中查找出慢 SQL,最后對 SQL 進(jìn)行調(diào)優(yōu)。

OK,今天就分享到此,是不是覺得Spring Boot集成Druid其實(shí)還是蠻簡單的。

碼字不易,望點(diǎn) 在看+分享,謝謝!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Spring Boot 2.x基礎(chǔ)教程:使用國產(chǎn)數(shù)據(jù)庫連接池Druid | 程序猿DD
Spring Boot 如何統(tǒng)計、監(jiān)控 SQL 運(yùn)行情況?寫得太好了!
Spring Boot (四): Druid 連接池密碼加密與監(jiān)控
Spring Boot 整合 MySQL 和 Druid
SpringBoot整合Durid
Druid簡單使用配置及其介紹
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服