Druid簡單使用配置及其介紹_第1頁
Druid簡單使用配置及其介紹_第2頁
Druid簡單使用配置及其介紹_第3頁
Druid簡單使用配置及其介紹_第4頁
Druid簡單使用配置及其介紹_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、DruidDruid簡單使用配置及介紹簡單使用配置及介紹惠買集團(tuán)Guanping.Li2Druid介紹介紹Druid介紹介紹 Druid是阿里巴巴的溫少(溫紹錦)團(tuán)隊(duì)開發(fā)的。 Druid是什么? druid憑借其出色的性能成為一名數(shù)據(jù)庫連接池的后起之秀. Druid Druid首先是一個(gè)數(shù)據(jù)庫連接池(DruidDataSource),它還包含一個(gè)ProxyDriver(Filter-Chain模式驅(qū)動(dòng)代理),一系列內(nèi)置的JDBC組件庫,一個(gè)SQL Parser(解析)。 一、一、強(qiáng)大的監(jiān)控特性強(qiáng)大的監(jiān)控特性: 通過Druid提供的監(jiān)控功能,可以清楚知道連接池和SQL的工作情況。1、監(jiān)控SQL的

2、執(zhí)行時(shí)間、ResultSet持有時(shí)間、返回行數(shù)、更新行數(shù)、錯(cuò)誤次數(shù)、錯(cuò)誤堆棧信息。2、SQL執(zhí)行的耗時(shí)區(qū)間分布。什么是耗時(shí)區(qū)間分布呢?比如說,某個(gè)SQL執(zhí)行了1000次,其中01毫秒?yún)^(qū)間50次,110毫秒800次,10100毫秒100次,1001000毫秒30次,110秒15次,10秒以上5次。通過耗時(shí)區(qū)間分布,能夠非常清楚知道SQL的執(zhí)行耗時(shí)情況。 3、監(jiān)控連接池的物理連接創(chuàng)建和銷毀次數(shù)、邏輯連接的申請(qǐng)和關(guān)閉次數(shù)、非空等待次數(shù)、PSCache命中率等。二、方便擴(kuò)展:二、方便擴(kuò)展:Druid提供了Filter-Chain模式的擴(kuò)展API,可以自己編寫Filter攔截JDBC中的任何方法,可以在

3、上面做任何事情,比如說性能監(jiān)控、SQL審計(jì)、用戶名密碼加密、日志等等。 Druid內(nèi)置提供了用于監(jiān)控的StatFilter、日志輸出的Log系列Filter、防御SQL注入攻擊的WallFilter。另外還有用于數(shù)據(jù)庫密碼加密的CirceFilter,以及和Web、Spring關(guān)聯(lián)監(jiān)控的DragoonStatFilter。Guanping.Li3Druid介紹介紹三、三、優(yōu)秀特性優(yōu)秀特性: 1、ExceptionSorter。當(dāng)一個(gè)連接產(chǎn)生不可恢復(fù)的異常時(shí),例如Oracle error_code_28 session has been killed,必須立刻從連接池中逐出,否則會(huì)產(chǎn)生大量錯(cuò)誤.

4、目前只有Druid和JBoss DataSource實(shí)現(xiàn)了ExceptionSorter. 2、PSCache內(nèi)存占用優(yōu)化對(duì)于支持游標(biāo)的數(shù)據(jù)庫(Oracle、SQL Server、DB2等,不包括MySql),PSCache可以大幅度提升SQL執(zhí)行性能。一個(gè)PreparedStatement對(duì)應(yīng)服務(wù)器一個(gè)游標(biāo),如果PreparedStatement被緩存起來重復(fù)執(zhí)行,PreparedStatement沒有被關(guān)閉,服務(wù)器端的游標(biāo)就不會(huì)被關(guān)閉,性能提高非常顯著。在類似“SELECT * FROM T WHERE ID = ?”這樣的場景,性能可能是一個(gè)數(shù)量級(jí)的提升。但在Oracle JDBC Dr

5、iver中,其他的數(shù)據(jù)庫連接池(DBCP、JBossDataSource)會(huì)占用內(nèi)存過多,極端情況可能大于1G。Druid調(diào)用OracleDriver提供管理PSCache內(nèi)部API。 3、LRU(Least Recently Used近最少使用)是一個(gè)性能關(guān)鍵指標(biāo),特別Oracle,每個(gè)Connection對(duì)應(yīng)數(shù)據(jù)庫端的一個(gè)進(jìn)程,如果數(shù)據(jù)庫連接池遵從LRU,有助于數(shù)據(jù)庫服務(wù)器優(yōu)化,這是重要的指標(biāo)。Druid、DBCP、Proxool、JBoss是遵守LRU的。BoneCP、C3P0則不是。BoneCP在mock環(huán)境下性能可能還好,但在真實(shí)環(huán)境中則就不好了。四、四、Maven中中druid的的

6、Jar包引用包引用:在Maven中引用druid比較新的Jar包,在我的環(huán)境中導(dǎo)入了druid源碼,項(xiàng)目則可引用源碼項(xiàng)目druidMaster com.alibaba druid 1.0.24在在Java Build Path -Projects Java Build Path -Projects - druidMaster- druidMasterGuanping.Li4Druid配置DruidDataSource數(shù)據(jù)源Guanping.LiDruid配置主要有以下幾項(xiàng):配置主要有以下幾項(xiàng): 配置配置_DruidDataSource數(shù)據(jù)源數(shù)據(jù)源 配置配置_StatFilter 配置配置_St

7、atViewServlet 配置配置_WebStatFilter 配置配置_Druid和和Spring關(guān)聯(lián)監(jiān)控關(guān)聯(lián)監(jiān)控 配置配置_使用使用ConfigFilter1、配置、配置_DruidDataSource數(shù)據(jù)源:以下是一個(gè)參考的連接池配置:數(shù)據(jù)源:以下是一個(gè)參考的連接池配置: (context-datasource-jdbc.xml) #confcom.driver #confcom.url #confcom.user #confcom.passwd Druid配置配置5 Druid配置DruidDataSource數(shù)據(jù)源Guanping.Li6Guanping.Li 2 、配置配置_St

8、atFilter: Druid的監(jiān)控統(tǒng)計(jì)功能是通過filter-chain擴(kuò)展實(shí)現(xiàn) 配置_StatFilter7Guanping.Li !-2、組合配置:StatFilter可以和其他的Filter配置使用 - !-3、使用proxyFilters屬性配置:通過bean的方式配置, 備注:與BeanI:stat-filter 配合使用,其中filters和proxyFilters屬性是組合關(guān)系的,不是替換的, 在上面的配置中,dataSource有了兩個(gè)Filter,StatFilter和Log4jFilter - !- StatFilter支持一種簡化配置方式,和上面4的配置等同的 -配置_

9、StatFilter8Guanping.Li !-也可以通過connectProperties屬性來打開mergeSql功能, 或者通過增加JVM的參數(shù)配置:-Ddruid.stat.mergeSql=true - 其中:!-5、合并多個(gè)合并多個(gè)DruidDataSource的監(jiān)控?cái)?shù)據(jù)的監(jiān)控?cái)?shù)據(jù): 通過jvm啟動(dòng)參數(shù)來指定和全部使用jvm啟動(dòng)參數(shù)來配置如下所示-Ddruid.useGlobalDataSourceStat=true-Ddruid.filters=mergeStat -Ddruid.useGlobalDataSourceStat=true配置_StatFilter9通過jvm啟動(dòng)

10、參數(shù)配置Guanping.Li10配置_StatViewServletGuanping.Li3、配置配置_StatViewServlet: Druid內(nèi)置提供了一個(gè)StatViewServlet用于展示Druid的統(tǒng)計(jì)信息。這個(gè)StatViewServlet的用途包括: 1).提供監(jiān)控信息展示的html頁面 2).提供監(jiān)控信息的JSON API StatViewServlet是一個(gè)標(biāo)準(zhǔn)的javax.servlet.http.HttpServlet,需要配置在你web應(yīng)用中的WEB-INF/web.xml中。 DruidWebStatFilter com.alibaba.druid.suppor

11、t.http.WebStatFilter exclusions *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/* sessionStatMaxCount 1000 sessionStatEnable true 11Guanping.Li principalSessionName 802720.user principalCookieName admin.user profileEnable true DruidWebStatFilter /* 配置_StatViewServlet12配置_WebStatFilterGuanping.Li、配置、配置_Web

12、StatFilter:(配置allow和deny)StatViewSerlvet 展示出來的監(jiān)控信息比較敏感,是系統(tǒng)運(yùn)行的內(nèi)部情況,如果你需要做訪問控制,可以配置allow和deny這兩個(gè)參數(shù)。判斷規(guī)則:deny優(yōu)先于allow,如果在deny列表中,就算在allow列表中,也會(huì)被拒絕。如果allow沒有配置或者為空,則允許所有訪問。比如: DruidStatView com.alibaba.druid.support.http.StatViewServlet resetEnable true loginUsername druid 13配置_WebStatFilter loginPasswo

13、rd druid allow /24, deny DruidStatView /druid/* Guanping.Li14配置_Druid和Spring關(guān)聯(lián)監(jiān)控Guanping.Li5、配置、配置_Druid和和Spring關(guān)聯(lián)監(jiān)控關(guān)聯(lián)監(jiān)控 (context-component-scan.xml)Druid提供了Spring和Jdbc的關(guān)聯(lián)監(jiān)控:com.alibaba.druid.support.spring.stat.DruidStatInterceptor是一個(gè)標(biāo)準(zhǔn)的Spring MethodInterceptor??梢造`活進(jìn)行AOP配置。 druid-stat-intercept

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論