Druid數(shù)據(jù)庫連接池說明_第1頁
Druid數(shù)據(jù)庫連接池說明_第2頁
Druid數(shù)據(jù)庫連接池說明_第3頁
Druid數(shù)據(jù)庫連接池說明_第4頁
Druid數(shù)據(jù)庫連接池說明_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Druid數(shù)據(jù)庫連接池Druid簡介Druid是阿里巴巴的一個開源數(shù)據(jù)庫連接池,基于Apache2.0協(xié)議,可以免費自由使用。但它不僅僅是一個數(shù)據(jù)庫連接池,它還包含一個ProxyDriver,一系列內置的JDBC組件庫,一個SQLParser。Druid能夠提供強大的監(jiān)控和擴展功能。但Druid只支持JDK6以上版本,不支持JDK1.4和JDK5.0bDruid下載:maven中央倉庫:/maven2/com/alibaba/druid/FAQ源代碼下載地址:Druid支持的數(shù)據(jù)庫Druid支持所有JDBC兼容的數(shù)據(jù)庫,包括Oracle、MySql

2、、Derby、Postgresql、SQLServer、H2等等。Druid針對Oracle和MySql做了特別優(yōu)化,比如Oracle的PSCache內存占用優(yōu)化,MySql的ping檢測優(yōu)化。Druid基本配置Druid數(shù)據(jù)庫連接池的配置與傳統(tǒng)的DBCPC3PRProxool等數(shù)據(jù)連接池的配置基本相同,下面以使用了Spring的項目為例配置Druid數(shù)據(jù)庫連接池。1 .在上述的Druid下載路徑中下載最新的Druidjar包,目前最新的為druid-1.0.2.jar2 .打開項目中的spring配置文件applicationContext.xml文件,加入如下配置<!-配置Druid

3、連接池-><beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close"><!-基本的url、user、password配置-><propertyname="url"value="jdbc:mysql:/localhost:3306/cendev?useUnicode=true&characte

4、rEncoding=utf8"></property><propertyname="username"value="root"></property><propertyname="password"value="mysql"></property><!-配置大小、最大、最小、超時時間-><propertyname="maxActive"value="100"/><prop

5、ertyname="initialSize"value="1"/><propertyname="maxWait"value="3600000"/><propertyname="minIdle"value="30"/><!-配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒-><propertyname="timeBetweenEvictionRunsMillis"value="60000

6、"/><!-配置一個連接在池中最小生存的時間,單位是毫秒-><propertyname="minEvictableIdleTimeMillis"value="300000"/><propertyname="validationQuery"value="selectCURRENT_DATE"/><propertyname="testWhileIdle"value="true"/><propertyname=&

7、quot;testOnBorrow"value="false"/><propertyname="testOnReturn"value="false"/><!-打開PSCache,并且指定每個連接上PSCache的大小-><propertyname="poolPreparedStatements"value="true"/><propertyname="maxPoolPreparedStatementPerConnectionSi

8、ze"value="20"/><!-配置防御SQL注入的filters、監(jiān)控統(tǒng)計攔截的filters-><propertyname="filters"value="wall,stat"/><!-連接泄露(未關閉)檢測removeAbandoned開啟會對性能造成影響,懷疑有泄露情況再打開-><propertyname="removeAbandoned"value="true"></property><!-超時關閉時

9、間1800秒,即30分鐘。連接30分鐘仍未關閉,則會被收回-><propertyname="removeAbandonedTimeout"value="1800"></property></bean><!-配置Druid連接池結束->3 .上面配置中的propertyname="filters"value="wall,stat"/>該配置是配置Druid的防御sql注入的filter和監(jiān)控統(tǒng)計攔截的filtero開啟監(jiān)控攔截另外還需在項目的web.xml中

10、配置相應的Servlet。請在web.xml中加入如下配置。<!-配置druid連接池監(jiān)控-><servlet><servlet-class>com.alibaba.druid.support.http.StatViewServlet/servlet-class</servlet><servlet-mapping<servlet-name>DruidStatView</servlet-name<url-pattern>/druid/*</url-pattern</servlet-mapping4 .

11、添加完上述配置Druid的基本配置即可,重新啟動項目,輸入http:/localhost:端口/應用名稱/druid/index.html即可打開Druid內置的監(jiān)控系統(tǒng)。例如:http:/localhost:8080/pm/druid/index.html5 .Druid內置的監(jiān)控系統(tǒng)頁面如下圖:DruidMonitor”行solars對防北川就皮同曬也拄5ff溝6灰撞sprngai胃jsom1ApiStatIndex皆看JSONAPIgswijdbcr.dbrJdtKOdbd>Tffl5eu*aibaMmod;MgdtDnrarawinrysqlpdbcOiwcrEmW3gUnuit

12、f清1'IUfl0Ju?哮小ivnt考*JavjHnltSpor?nMCClwrl¥MM1r幄期&8ml的處他腳Cl_II"l-lh1-1.3必-¥仃1。_11:l1:.帕M同通過上述配置后可以在此監(jiān)控系統(tǒng)中查看的包括首頁、數(shù)據(jù)源、SQL監(jiān)控、SQL防火墻(SQL防火墻的filter即wall)、session監(jiān)控。至于Web應用、URI監(jiān)控、Spring監(jiān)控等暫不能查看,加入后續(xù)的配置即可。Druid內置監(jiān)控中的WEB關聯(lián)監(jiān)控配置使用內置監(jiān)控中的WEB關聯(lián)監(jiān)控,需要在項目的web.xml文件中加入如下配置:<!-webURI監(jiān)控配置->

13、;<filter></filter-cl<filter-name>DruidWebStatFilter</filter-name><filter-class>com.alibaba.druid.support.http.WebStatFilterass><init-param><param-value>*.js,*gif,*jpg,*bmp,*png,*css,*ico,*.swf,/druid/*</param-value</init-param</filter><filter-

14、mapping<filter-name<url-pattern</filter-mapping欲了解更多>>>>DruidWebStatFilter>/*</url-pattern>Druid關于</filter-nameWEB監(jiān)控配置請移步%BD%AEWebStatFilterDruid內置監(jiān)控中的Spring關聯(lián)監(jiān)控配置使用內置監(jiān)控中的Spring關聯(lián)監(jiān)控,需要在項目中的spring配置文件applicationContext.xml中加入如下配置:<!-配置Druid的Spring攔截器-><beanid

15、="druid-stat-interceptor"class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean><beanid="druid-stat-pointcut"class="org.springframework.aop.support.JdkRegexpMethodPointcut"scope="prototype"><propertyname="pat

16、terns"><list><value>com.censoft.app.controller.*</value><value>com.censoft.app.dao.*</value><value>com.censoft.app.service.*</value></list></property></bean><aop:config><aop:advisoradvice-ref="druid-stat-interceptor&qu

17、ot;pointcut-ref="druid-stat-pointcut"/></aop:config><list>中配置的為需要監(jiān)控的包路徑。欲了解更多關于Druid的Spring監(jiān)控配置請移步:85%B3%E8%81%94%E7%9B%91%E6%8E%A7%E9%85%8D%E7%BD%AEDruid內置監(jiān)控系統(tǒng)簡單介紹例如:輸入http:/localhost:端口/應用名稱/druid/index.html即可打開Druid內置的監(jiān)控系統(tǒng)http:localhost:8080/pm/druid/index.html下面就Druid監(jiān)控系

18、統(tǒng)中的各功能模塊簡單介紹一下。首頁DruidMonitof若企觸型需song虺導ql時對自陽嗎疝期uri之掛給即監(jiān)標中ms濫法jmmapiStatIndex件看JSONAPI國本Ig.2加1鴕nJdbcMbcJdbm&Dd陽corn-dinjkirrm*M4dkDr吊eiconi窿l口南已j-DHitflbAMiMki慰31VOniiklDiluef名西施許tme用"的堇I£0_13JviriiMfcJavaHorgnrtnraidisnlCl»lgl4triDiSff中的優(yōu)歷Mm0MimaircFil”以眄*11處蘆鼻4川2O14-O2-1B694015

19、展示Druid版本、jdk版本、重置次數(shù)、啟動時間等基本信息。數(shù)據(jù)源DruidMonitor=比就格#3aLigi?sau和癌幃儂1sum跟慢爾?。ㄍ玤*陋DataSourceStaiListViewJSONAPID4H向明*七通舊17Bb«IcInfoForDotaSourc«-2319»21TVIewJSONARrwl尼毛*工用±fl用二七.祚鞠星MfaxexmklwimmHHinod廿=1)"工口1MBdETEHCDd0=UM3-it.曬吊'她t受里rwd何信:老uig七a4重h.mgft*冬g.d'ud時*"

20、MiWiMB詞Hdrukl*1*用1如)T卷r'益圖HEMFfce:否iffi'lt右仁.叼mi,wrwtiX雷?14gfT翱日RteWKCffiS也相Sh&M現(xiàn)程M府流笆色將.匕在i強工時+世.IHfcfL并大小1不把。起才白洋的打"禍】JQ!數(shù)據(jù)源菜單顯示數(shù)據(jù)庫連接池的基本信息,如連接地址、連接類型、最大連接數(shù)、最小連接數(shù)、初始連接等信息。詁Z戶生口田傳麟立啟的1«宮力怵逢除閽翩可通過邏輯連接打開次數(shù)、邏輯連接關閉次數(shù)來判斷系統(tǒng)中是否存在有連接未關閉的情況(正常情況下打開次數(shù)和關閉次數(shù)應該一致)SQL監(jiān)控Druid則M01由f»Kff醬

21、3倡Rj.ywftfle耳5,Ea0l>B|CPSQLStatViAWJSONAPI.KM*HIT*班EMHIdu4swFnatwHARJFM1圖Fft*HM*陪用謝號串43-|srafrfl*I-D1SELECT-u.-umta.iWHM21-4TD<iniDiaocamIKDXiaDllOElBM/亂口0|dW.DHI1MHClECtqy-,«SAimw”口Rm#上。鼻。小slElCrCfiJULf<FfaWMl:1*31ptllfcM皿血就用SQL監(jiān)控顯示系統(tǒng)已執(zhí)行過的每條SQL語句的執(zhí)行情況。通過執(zhí)行數(shù)、執(zhí)行時間、最慢時間、事務中、錯誤數(shù)、最大并發(fā)、執(zhí)行時間

22、分布等統(tǒng)計維度來展現(xiàn)。需要說明的有:執(zhí)行數(shù):本條sql語句已執(zhí)行的次數(shù)執(zhí)行時間:本條sql語句累計執(zhí)行時間(單位:毫秒)最慢:本條sql語句執(zhí)行最慢一次的耗時(單位:毫秒)執(zhí)行時間分布【】:這8個-分別代表8個耗時區(qū)間的次數(shù),從左至右依次是:0-1毫秒次數(shù)、1-10毫秒次數(shù)、10-100毫秒次數(shù)、100-1000毫秒次數(shù)、1-10秒次數(shù)、10-100秒次數(shù)、100-1000秒次數(shù)、大于1000秒次數(shù)。如下圖中的這一條數(shù)據(jù):執(zhí)行時間分布快行,R5時分布讀取行分布I-111OJD.DAO,0,0,010,0.0.0,0,0,0,00,10,0,0,0,0可以發(fā)現(xiàn):執(zhí)行時間上本條sql語句有10次是

23、在1-10毫秒內就執(zhí)行完成,其他耗時區(qū)間的執(zhí)行次數(shù)都為0.執(zhí)行+RS時分布與此同理。通過耗時區(qū)間,可以發(fā)現(xiàn)SQL執(zhí)行的效率情況,可以反映出數(shù)據(jù)庫或應用是否穩(wěn)定。SQL防火墻出口.3嘩f5百加率址白:七耶94映ft%SrtHiliMW!*hJomhPEmtaiajiTz切*CnwmflH"j,i|Aw*Crai4Renmc期sliJfnil-Ih*120jvi«.im.muiWIW48I?OlAAHpt*aipffljjHtaidM12風302t妣inifto.Q'NmiEa?u3,M,4i”FULMGH«5a爸也上山頻FJR1.*.101FVjn*KIMm

24、Ejm.t.mj«南&調冊統(tǒng)HWwrtiClwiw4UMCHtJtJ1M>gafhMB944np*制LW£iU42pVMM*MJN»g1NuSQL琳期鰥計,白名單川心F*mwi*狗hIwcicWWififllltffl.HHW«MH上一¥_-3*VMririhMC3llMM_a«iaT1ttLECTCQWnWri*F|%MMiiirCiVwuKWfeeHER捌ECT8vmMH*用3二mmMai府國M.<1)=»AfCkciiww*Jwe=*HDk¥*fl_X='*gi?4«=尊

25、MJpcoi5hp»eB_fa(M:7ira9ux:«w_«iy='WE:p酊4*lErtwM.riA-M4SJUEElCOdHTrFASMnFROMpn.CKtwiKWKRE(KSEIdECTCDlMTCjzAmFNCHf«_uaxwpcWEHEFU|_J14i/尚鳴Ki>AN(牌fk«rmvjHia二aEpr*eari9vwjnh-tMSQL砧神螞H-黑名刺mWL*KFtB能眄忖通SQL防火墻分防御統(tǒng)計、表訪問統(tǒng)計、函數(shù)調用統(tǒng)計、SQL防御統(tǒng)計-白名單、SQL防御統(tǒng)計-黑名單這幾項。其中若是涉嫌SQL注入的SQL語句將被攔截,

26、出現(xiàn)在SQL防御統(tǒng)計-黑名單中。詳細的SQL防御的wallfilte配置請移步:WEB應用DoildMcntof.nmML&t刪je托ut胃e噴向川歪曲卻/皿/*啊中海hmmfWebAppStatListViewJSONAPI!W(LK*A3事.金MNfarldftMLilMTI方Q時awta2Hi1!|CVtHl1ti昆山9。必13,!_兇值iIi01iLlhuC<MItOHrwtiUK.wM1>IUlWDtdLXUMin叫i-imvwUpOMor-«iWeb應用主要統(tǒng)計本應用的并發(fā)、請求、事務提交、事務回滾等信息,另外統(tǒng)計了本應用在各操作系統(tǒng)上、各瀏覽器上的訪

27、問次數(shù)。URI監(jiān)控F*由|EDruidMonlpfra前Bt左國£4的t醒0*厘南ir匕eihr。jbcrm*WebURIStatViewJSONAPI篁kfg大片JWftF值同*用fWWKWiMH*£.dAAR.1加31能啟工12KMAeiiEltjilkUiniENTkWiHfnMHZCiB22±1WHK*«ER»."_-1Q??赨OQiR.MdsJWK-aiiuwciMMMtAiriACuosrrwraMiaGi9V1-皿AbWMMM潴LMWAil#&*fr21K心WGiaHChHLKlIT售*1口型加|m0直Hiiun

28、ai.pa1wrtiwjInMjnp.r4-1MJPWn<i*Hdl4nunqpp/ifMW>W>tP4Ap.4LBl4|RIg.MU炳.wnHvn4Mt(>M*0lMP¥b>T>MtESbEJ34IURI監(jiān)控統(tǒng)計了應用中各url的訪問次數(shù)、請求時間、并發(fā)數(shù)等信息。Session監(jiān)控DruidMonaor11*5赳成二響websessionstatviewJSONAPIM事舊孑MC/MGtFMQFFKWfMMQOB,上個時蕾餐單添值IMHN苑嶼*Jr#必隸后JdtdMHflttWFBfr炳*ItA,工3141tilm2hiillIMi九4CMMiI

29、k上gmqHH事MITt旃他Session監(jiān)控顯示應用中session的請求時間、請求次數(shù)、最大并發(fā)等數(shù)據(jù)。Spring監(jiān)控CKukdMonitor身eNWVWLft!£用n的*必由IUHWtmu*企jseeiSpringStatViewJSONAPI13萬。用*.AMV9哥fflM,wt*mdtFWHYU!9C9W#fS|ifflCT陽河EE?mqnim7fFPBW.1QDJU1*CMC*卸4#fi1i4Pl$|£*.*uhrf#財ii幽-i叫CwwtwiroijHiB*1iR*LII*U.4|1MB*MLXmiiflfUM3,t,AWJl,!*wcemMi.tspter

30、McpAurncVipw.4源1曲,*fancaniiAMD3fZoiaurfln<IMDu*MhpskT91RMMfmdiwAtivwNW知Etrri<xif曲Spring監(jiān)控顯示針對配置中需要監(jiān)控的各方法的執(zhí)行數(shù)、執(zhí)行時間、最大并發(fā)、讀取行數(shù)等信息。Druid數(shù)據(jù)庫連接池如何解決連接泄露對于項目中可能存在的連接泄露(連接未關閉)的問,Druid提供了如下辦法:1.可通過“數(shù)據(jù)源”監(jiān)控中的“活躍連接堆棧查看”這里顯示的是未關閉的數(shù)據(jù)庫連接堆棧信息,可通過此堆棧信息來分析未關閉的數(shù)據(jù)庫連接所在位置,從而手動關閉,解決問題。點擊ViewJSONAPI可查看堆棧信息,如下圖:(wRes

31、ultCode*:1,Content*:.一“可以看到目前并未有發(fā)現(xiàn)未關閉連接的情況。再看下圖:X"Ontcsl'-/jera.JjuitIbz«Ed.tttSrticilriiCEJan:jUBI?'jiub.«ilJk»faL6工gW.gel£ai«3ioe0Lrect*tlDftLcnEe.jam2J喳iik但,fill*iHjlrrtflMRT.'L1544”;jinfilterH通明,uiTi3tstFiiterJena;網1:SKoaLdlkHbadrdiLfiirer.FlIttrCbalnH4p

32、LI5iItcrChaLnJqpiLjwaMGMJwa-BJabt44.4rua4.fslifrFiltir'UHpifrJB%*SouFE4_f«i<4nnt<iaceIfjHe?idHpierjiif:£;*'*目1&4.曲3&fhli<r.fsh'trCbtaDtvL>4itElhcrCbnEklel.j-m'i-Jt40'i'meca.i.UbttbL,iruidpgLhni凰Br/Gwmfe-TC-onne-TciniQnjdEkTaburce.ec>hltl1baib&

33、amp;ceFtd.paclIhuii&i*SDurceflK-TC3entcTlca4Dr-MKdfiBtHXnlrcv:JwViii.BT*1acehl!LbaHidnk<Lpan_Dnci.£taljiLj-iMic_pitCeesactIdeiDtF-jadCKtavrcji.1ntt_afiKhB.jhjllai-l_|if-_Jxf5Eiif34HE«rt_jvf.ja.¥a.fib-Xemt,e匚be.WDprr.eb”msrnriwliitplspfinrj<ra;/0)aJbtbmeeIMktilLffiriServl-Fii

34、MnrsceIIfiTp5wvJ.fi:uw:煙1xkts.,aFpriiFtz'lLjsp5oT-lrlKraETHrMrac?JSnTlftEr-sFMri3HJottssmcscim2;p«t.3fric<j5pFil-j5>5tiTrt.3DC1.1MuteM*P*r>e-flrvlttIvScnltr-M-rvlti噌cl,wrvice'13?!p5trv.ti1J*'|-Miirywi-hr.31工口二5L_K-nrc.即:lcxIxzdFjleeutCHu.£ex_anicrEjclDcfiterLLppLLcat&#

35、163;=nF£l'iC3rrbiX3a.,Jc.to.ZSDrraK-osslcIue.CEalisa.care-licaz.ldsFitcrCixcaa.三OilierJfkcttiwPilieKhhm.jm;!.1acmltlilHA4dntd.-wwrchtepVefeScHPiherd*Wt總工巾曰t工Pili社Jav1241bob1.pacLfl.raialvni.cm-b,>nt-icbJ1'!IiirrCln.EnanrdruJHeira3bflrr!AflEcntxanFiliMr£ka:u.jja-njB.:1295bi.ulurK

36、ralann.affiELrafa1fcririrOEKan.daFiItirr!A*piHftfIvafilteiChhlfli,icmwen3>TW*QVF>aitwe*tdieaifliter.aliiCwtcit(SllEtttaftflkcrDJt*i:Llfl>、國事Miura知ngKww晶值除”darili-eri3si-tleBWilirra:rr)"A#ra-tiKlig.cert.M¥i4«TUr?33ctTCh&b&UTgisaiKrsilicTnrBtiprfiltFrChfcimijTt:235!里。e1

37、09-catil11%cericstionFiLtfrCbsin-ItfrAm>lica1icnrFaErOflir-3b<:2E百dM«V.fiLi«j.'iBHEiwhceiiiftifLLiar.ieFi3"'BaarMiiih«r.JavtiIt:wf.irjrMIri*i«rkH«kfiLttr.DmhIR«rLOteccPt-rRiefiKsvFllRer.jii107.11inTH4Jicar-c«cj1lui-corepldcaraiMf,Lc«rCbBibiosfmjaiDirilr>criDcFliii-rChain.工唱?。?8)"AWit_*j>i£bt.u.taJ.inLcm.Ape

溫馨提示

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

評論

0/150

提交評論