Druid数据库连接池说明_第1页
Druid数据库连接池说明_第2页
Druid数据库连接池说明_第3页
Druid数据库连接池说明_第4页
Druid数据库连接池说明_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Druid数据库连接池Druid简介Druid是阿里巴巴的一个开源数据库连接池,基于Apache2.0协议,可以免费自由使用。但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQLParser。Druid能够提供强大的监控和扩展功能。但Druid只支持JDK6以上版本,不支持JDK1.4和JDK5.0。Druid下载:maven中央仓库:/maven2/com/alibaba/druid/FAQ:/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98源代码下载地址:/alibaba/druidDruid支持的数据库Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQLServer、H2等等。Druid针对Oracle和MySql做了特别优化,比如Oracle的PSCache内存占用优化,MySql的ping检测优化。Druid基本配置Druid数据库连接池的配置与传统的DBCP、C3P0、Proxool等数据连接池的配置基本相同,下面以使用了Spring的项目为例配置Druid数据库连接池。.在上述的Druid下载路径中下载最新的Druidjar包,目前最新的为druid-1.0.2.jar.打开项目中的spring配置文件applicationContext.xml文件,加入如下配置<!--配置Druid连接池--><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&characterEncoding=utf8"></property><propertyname="username"value="root"></property><propertyname="password"value="mysql"></property><!--配置大小、最大、最小、超时时间--><propertyname="maxActive"value="100"/><propertyname="initialSize"value="1"/><propertyname="maxWait"value="3600000"/><propertyname="minIdle"value="30"/><!--配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒--><propertyname="timeBetweenEvictionRunsMillis"value="60000"/><!--配置一个连接在池中最小生存的时间,单位是毫秒--><propertyname="minEvictableIdleTimeMillis"value="300000"/><propertyname="validationQuery"value="selectCURRENT_DATE"/><propertyname="testWhileIdle"value="true"/><propertyname="testOnBorrow"value="false"/><propertyname="testOnReturn"value="false"/><!--打开PSCache,并且指定每个连接上PSCache的大小--><propertyname="poolPreparedStatements"value="true"/><propertyname="maxPoolPreparedStatementPerConnectionSize"value="20"/><!--配置防御,。1注入的11七0二、监控统计拦截的filters--><propertyname="filters"value="wall,stat"/><!--连接泄露(未关闭)检测removeAbandoned开启会对性能造成影响,怀疑有泄露情况再打开--><propertyname="removeAbandoned"value="true"></property><!--超时关闭时间1800秒,即30分钟。连接30分钟仍未关闭,则会被收回--><propertyname="removeAbandonedTimeout"value="1800"></property></bean><!--配置Druid连接池结束-->3.上面配置中的〈propertyname="filters"value="wall,stat"/>该配置是配置Druid的防御sql注入的filter和监控统计拦截的filter。开启监控拦截另外还需在项目的web.xml中配置相应的Servlet。请在web.xml中加入如下配置。3.<!--配置druid连接池监控--><servlet><servlet-name>DruidStatView</servlet-name><servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class></servlet><servlet-mapping><servlet-name>DruidStatView</servlet-name><url-pattern>/druid/*</url-pattern></servlet-mapping>.添加完上述配置Druid的基本配置即可,重新启动项目,输入卜即://1阻卜时:端口/应用名称/druid/index.html即可打开Druid内置的监控系统。例如:http://localhost:8080/pm/druid/index.html.Druid内置的监控系统页面如下图:至震DruidMonitor演热螭saufi注 时幻由叫的应用uri£JJs«网即监控surr^ifiF?jsonapi至震StatIndex查看JEONAPI印小 IC-iiSil ajin.jdbcfldbcJdboO函dOrtmrasm dnuidiratModcOnv^ommys<]ipdbc0riverdot#bag<iraidpnwcy.DrwlDrivflr是否先前甘国MXE^I0科面领局田HolSpoH™)OtenlVMcJa4BpotHDnomc^.Q^WlxHJtsfrEipjarW®「wmRIBSCKS^UBiVBi'flCftlLCl0_13WlMfcJHr的时0 201MJ2-1A帆4C15通过上述配置后可以在此监控系统中查看的包括首页、数据源、SQL监控、SQL防火墙(SQL防火墙的filter即wall)、session监控。至于Web应用、URI监控、Spring监控等暂不能查看,加入后续的配置即可。Druid内置监控中的WEB关联监控配置使用内置监控中的WEB关联监控,需要在项目的web.xml文件中加入如下配置:<!--webURI监控配置--><filter><filter-name>DruidWebStatFilter</filter-name><filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class><init-param><param-name>exclusions</param-name><param-value>*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,*.swf,/druid/*</param-value></init-param></filter><filter-mapping><filter-name>DruidWebStatFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>欲了解更多Druid关于WEB监控配置,请移步:/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_%E9%85%8D%E7%BD%AEWebStatFilterDruid内置监控中的Spring关联监控配置使用内置监控中的Spring关联监控,需要在项目中的spring配置文件applicationContext.xml中加入如下配置:<!--配置Druid的Spring拦截器--><beanid="druidstatinterceptor"class="com.alibaba.druid.support.spring.stat.DruidStatInterceptor"></bean><beanid="druidstatpointcut"class="org.springframework.aop.support.JdkRegexpMethodPointcut"scope="prototype"><propertyname="patterns"><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="druidstatinterceptor"pointcut-ref="druidstatpointcut"/></aop:config><list>中配置的为需要监控的包路径。欲了解更多关于Druid的Spring监控配置请移步:/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_Druid%E5%92%8CSpring%E5%85%B3%E8%81%94%E7%9B%91%E6%8E%A7%E9%85%8D%E7%BD%AEDruid内置监控系统简单介绍输入http://localhost端口/应用名称/druid/index.html即可打开Druid内置的监控系统。例如:http://localhost:8080/pm/druid/index.html下面就Druid监控系统中的各功能模块简单介绍一下。首页DruidMonitor首页效把狎 sql鉴谊 sgl眈幻白 伙啦用u印监控 宏鹏师鉴把 3ml谑度 jsonapiStatIndex«JSONAPII眠第 IjO.Z1睡 效力jdbcadbeJdbcQdDcDihi^rccrriallb^adruklma曲岫dlkMe1re陋叶国加已口仙廿comalll^hadruidpri^yDruldDrivef皇否先许true事若重通硒I)川Y0版本 i6CL13拉im锄 JBvaHGtSptrtiTiM)Cilenl™cldsssiatri□路播'IcxTicalfi.DiWTboirtslTap.jar,ProgramFilesO:06]|Java!jdkl.5.Q_1Mtiloci]S.iaf启则同M14-02-1B09:4Cl15展示Druid版本、jdk版本、重置次数、启动时间等基本信息。数据源DruidMonitor切LDruidMonitor切L节屋 SOLF赳垠 Vb虫五用 町R喧堡 SassiDfKSFf 工闻2由度 J式油区珥重道DataSourceStatListViewJSONAPIM眦电和2总第21,BasicInfoForDataSauirc«^3295217Vi&wJ.SONAPI扬至陛五EHI戛的利=J用闩石*速损啦的emwi双33.iqmlawccffijM-?LEdJnD3d±-=tnjE-Bdiaiacts'En£Ddng-=Lrt13声奠武拳手开举■触郎隆空mg船班克里♦蛔璐起unn.FmqiJi比.口rver[如茏研fi,CM!»db4udliidwAl.Wdlritar.iZ<HTiJj也注曰SidHI时S\3CSUIFika-■霞帕摭报3H向班!昱否管嗝£电白i#l■可用H.财帽制tnj4昙者在性心可一。期白哂摘耳口用在■■诙祐展IS徐祐网松膻的中圣百田I刃舞团区和旭班男■可甲H*刘拓戊连理式小1连史出9加相阳的扣司玲,魁"量十里艇减3fl正他珅鼻,卜的东E庄触数据源菜单显示数据库连接池的基本信息,如连接地址、连接类型、最大连接数、最小连接数、初始连接等信息。j«指KM斓 而 T“底叫叼.t:\.?.i可通过逻辑连接打开次数、逻辑连接关闭次数来判断系统中是否存在有连接未关闭的情况(正常情况下打开次数和关闭次数应该一致)SQL监控DruidMonitor岬利5酬母自的h.h划风时也用ur匕停网的晶掾/附珀偿」smmiSQLStatViewJSONAPIH> a舒曲IkrwviM 鼻普中啾aMBIi«R»iHH41ft*;#乳口分餐・行小华I才率Sffi旨"d3|越KRfiS*1BCirCTke-usiwwi.nvM,H2:1 4TOi口1不.耳叩同11用内包0,4・.03[0.1电0以&1m[i^D.a,4\D.q]iswd«1artime«_*a«4!.03n3 朋iw1LDlM^UACIL1l>tD.QAD.QJ±也ECTCOalE阮Ei&dQ弧.13; ai1MUDM胃m.w峭国岫冢府SQL监控显示系统已执行过的每条SQL语句的执行情况。通过执行数、执行时间、最慢时间、事务中、错误数、最大并发、执行时间分布等统计维度来展现。需要说明的有:执行数:本条sql语句已执行的次数执行时间:本条sql语句累计执行时间(单位:毫秒)最慢:本条sql语句执行最慢一次的耗时(单位:毫秒)执行时间分布【 】:这8个-分别代表8个耗时区间的次数,从左至右依次是:0-1毫秒次数、1-10毫秒次数、10-100毫秒次数、100-1000毫秒次数、1-10秒次数、10-100秒次数、100-1000秒次数、大于1000秒次数。如下图中的这一条数据:

机行时间分布 执行+R5时分布 读取行分布[0.10,0.0,0.0,0,0] [10.0,0,0,0,0.0,0] [0,10,0.0,0,0]可以发现:执行时间上本条sql语句有10次是在1-10毫秒内就执行完成,其他耗时区间的执行次数都为0.执行+RS时分布与此同理。通过耗时区间,可以发现SQL执行的效率情况,可以反映出数据库或应用是否稳定。SQL防火墙表访问统计prfUpdi忡M 陷向用附 FurKfHfl禺用事RbpfKdRR«rritI--]EhHS11RWR试糊k1If加r叫.wn2pm.pTufflCIJW^A aJ?假工冲nq3WT--PWf 23m^iMLajDl4师一uwiiao In113;际网*M腐5pm_rwiTi 121MPJJS.M.OJD1SWTi_g承 油45T蹬rjEA.tjjo]wnjr半口 为站函故调用线ilFUiUkflMMMini4i«£:«uiu“广鹏913aaiHrfi4mtasEi35-11tlm*n^hIJJOiHdN42EUiall_ELE>aKW»■n13-

SQL防御稣计-AM单标 的LH章 的精1 wt«1cUi imwh_cwfem*we*v_coraHrv*wa3xilara_is-da■7Z2 3ELJECTCOdHTiMAS pnkjifMWpewtfREpe=73NO =7*HDik =1A国□ cutanr.&Uitf-7SLElZT8UHT白淖uiiFMOUa一皿*1mi髀WHEREpcaL4WgHrff='州口K =7l«l咤内也如:皿Wpf-rntaTiM'.aUta-W113 壁UECTCCXJMTiMASuhunFRDMpnk_ci£MflW旭,在REpe■sLemM=73NDE.H41bg=亨WDpcim血elTbH=?SQL防抑线“■果名单SELECT8UHT巧Mill雨CH第一MM闻K/HEREptJL 3EPtit= pc.TriM_lapY>TE即 由leRff1+PK SQL ff*我行热nraBunaSQL防火墙分防御统计、表访问统计、函数调用统计、SQL防御统计-白名单、SQL防御统计-黑名单这几项。其中若是涉嫌SQL注入的SQL语句将被拦截,出现在SQL防御统计-黑名单中。详细的SQL防御的wallfilte配置请移步:/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilterWEB应用LMU-DUfLoire州UFhiLMC皿3mlQ-SAMTOdeiHjH(HHInriwGICwnl你寸如Hi撕口>U41(14IMnfun IWeb应用主要统计本应用的并发、请求、事务提交、事务回滚等信息,另外统计了本应用在各操作系统上、各浏览器上的访问次数。URI监控DruidMonitorShmt片DruidMonitorShmt片191 9旧二目JSQ«JU*IxxWebURtStatViewJSONAPIURI'S牛胤社辽旧出URI'S牛胤社辽旧出U!K**jBm>£R>MiUTBENrQiiER^QiHZJiOiwd.iBW 寓诉羽 中■大片JdtefLFrA a A事,《KWEBUCWSKHei3»*田白0,。力&&0]«>^1丁时ta/DMJIDNICimCn-3-VjCnXa■MUUOG£?iVCMlDKMao-1叩0总由1以曲5X的岛节呼El卸MEf的的把扣iiXHnL.*2umgQ峋■口UEftiJbhtMIPj京JJ<aWnRb U口G1户4区i«0abw-7RWl加.旬革ttl也应班/ -Xdd川1嘀的回甯1翩硼豺IHiM1CMjfl嘉岫喇.'ixrjnrnrrcnlsi^>1agrHh^kT^ppb1,H4URI监控统计了应用中各url的访问次数、请求时间、并发数等信息。Session监控DruidMonitor赖伏送审sonuisixj^u“c用的」后EWI中交WebSessionStatViewJSONAPISEg期削213M4Hl河日■n习一司蝌ft*Tft***,W忏JrihrH稀■至»ftRS耳k 行河 仲 日 由 H次钥JtEl•:外瞄西23*傕-信EiUHIa加川33(HK11E40MQM11ST的划US12U 才栏WOMWM?Sn^FKeK-BAMXQFCDS2LCd2盼峙aMHE■坦H噫的MEOMTB312HSession监控显示应用中session的请求时间、请求次数、最大并发等数据。Spring监控vjfiirsJ3OM*rjvjfiirsJ3OM*rj日展的I甲正Spring$tatviewJ$onapiNMb M£EKiIhTi恫:jJtfalIhTiJdtK制可;BE ・:fi 行n M更即制贴1w acpHf*ctU5ffCo*tw*fSe«w q再为 国•典蚓:i*91,IF11口凤10小灿蚂2m“re;面邓士加,Pn血mo □东匐制闻WUap:>5蛤i15m»口屿工好曲内3nacwr-rflspHfBc#PiiMtaSeMM gAGontK^lm)fYt.iJQiHbpJ5»1口410瓜电中用4MttfEitfl陶皿 皿MrSJAO .吗Eigifim5»<>3rr1J-口是1国口明明口qwFc^Jcfiflepstf*c*p«u«TrK^pw>i3ewagwCfln 卅b30跚1IAM.44lt.4-.4t4maiwi团a^ficonSFvZ4xnrrunKpa-IEk|iD gnfufi/lLmDYf^M-^ia■mMMtapj阳■g曰cnupmo.帕心也*肝出网184 g碑修rH**m4Mi种:14101»:口咽日咽明口他呜叫WJjSpring监控显示针对配置中需要监控的各方法的执行数、执行时间、最大并发、读取行数等信息。Druid数据库连接池如何解决连接泄露对于项目中可能存在的连接泄露(连接未关闭)的问,Druid提供了如下办法:.可通过“数据源”监控中的“活跃连接堆栈查看”这里显示的是未关闭的数据库连接堆栈信息,可通过此堆栈信息来分析未关闭的数据库连接所在位置,从而手动关闭,解决问题。活趾隹搞堆推直若 View autklraceFar白cU於二口[VfewJSONAPF]点击[ViewJSONAPI]可查看堆栈信息,如下图:^ResultCode^:1,^Content^:];可以看到目前并未有发现未关闭连接的情况。再看下图:「1«111[£口左,:lr七nun1「:[-jHra.kintTbxesdLe«Suii±hheie(VlbHdd.Jk»: 且>1nfallbaha.diuiL口”】.DtFu^dfiLtaSDuru.setCdriAHi iDtru^dlAiT^urce.java:942)■]abaks.idruiid.falla?.Fil,t:-irChH3ET,^l..di'txSDcrrEa-^EEBnKt jxua=-1=4-3*1i.nc-si.a-liLciJib.dtrjxd.Eiltar.:dxt.StatFiltarcdat»E«3rc«_£«tCannfl£t3on(SimFIIf民d&r*8l:Aru血411Hg.dnd>LfilTer.FiIterChalnlipLdktbSoutce.coriMCitFdherChmi】ap1・ ;拈州}^iOzceii.b)ibthiidruid.fallfTiFilter.^opterdirta5>jrc<_pctCcnmctifln!Pi]ter^!^terjsp:£724J'ocmiBlabeit4idruidsfil代gFilt电rTtBioIipLdatiSflnix小jctcnectiFLlcerrtaiDl<>LjAVL:<3MJ]'i''>nco«.-iLihabz-druL±pool.DiuidDaTAS>?uri:e.ferCofinecDoniDtciidhi&u性已履、温:网”加阻EHtiah2LdE*d.gulLDniidZaiaSMXffe-.ee-TCcuiKiiiDfi■Dru3^Di.tn&ouFC-B.jhvi..B7£i'-=.zcd.■]-bita.-£ru£d.^aa]_Dr^LcDaixStT^a'ca-1■tCc=ziB'=tisc-i.DmicIlBitc«. n^rc-xpochi^ tist_jxp__Ja;Em'icuIt«xt_Jip.javi-ba'''JMFSBpqclx-ijaspeiinimiifHltpj5pBi:eiMrvLWiHntpJsp&isr:rffl'ipJefiksenrlttifefttpuHttBServleti5eETicfUiitp5«,s'icta.ja«^:f®J日冈匚j&sptT.Mr^lcLJspScrrletPrappeT.匚呼UspSrprletUns口pe=,java3B4J«iwr^.sp3oc..iaspe-,MrvLerJspfimdet,MrriceJspFileJspSmdttija^i3EC)‘'a喀蜀Nek.也;华心Kf^ieiLispSerrlfri,汽丫立t口常pServiex.^a-2Q6>,,.bjdv«iixfHeihirpiBn^SeE^ltr.se-rvkeiBnESmletij-avi_9CS)'&3FC-np£El>=.eulei=jle-j.^j.1i.E.iLi:cFj=I.E*rCk=:1n.£n:viulCk^i:ter!AppLjcdls-znrsl'i-srr^djz-Jim.29。;,,r»j|j.cptchc.cctd]£nn_core,^^placattnifi]tErChain.daPillrrLkphstiMfiiterCliLiirh正⑻2C6)\d匚domibabiidmid.sjpixirthttp.TehStirtPiiterudofiJterWefaStrtPiIter血e兜打\uir.u・piiui7*.ntal£ni.Enn.AppliutiocPj]trrChi.£n.3ni<=,na.l.llaJ1i9'tBr!AppUc3t3cnF31i4r€hflin.jir・=235J\naTi.ipijchi.ca.talina_can.AffilscatEaEFiltHrChain.daPi]ti-rtlfliLliMftl,M?ILtarChLinJism; Drcn&npiis&T.n1««出1«4日屈ShdAe依Ihc艮。阮日武磨工亡近需立必旌IhcLjitE;旧岫,pcca.opefi£ji|lMnr.s^ccKih.nbfi卧TdMWllECf.^Filief'^LTdlfEtrilicr-jftiBzTT^'ijiiocrii.aciKbe.cfiid.Llu.catrt-ApplRdi^nJLlcernuln.IsiuixaimriLier'.^d3icLtircFiItrrChiin,询Q〔版j\jwri.mcbe.cqtilinarcwr.teliraticnFiLteTChsin-dcFilt^r!ADDlicati«iPaIterCIwirv:205:,■tEMFU-zpritjfFJflimrk-mb.J£L1«t.|Zsnrj£':-ir^cD'f!£n[?3.]tflr.dcFilt+ir二匚tumisl'.E^argtiirE注口dWsiQ;lv-「.jsvj..BS!\BrOF[_xpx-LnjFruicr':?k_faLtir.Dt£aPflrS«q<^4XEFi]taF_JoF^Ie-if(ObcrferfegwEcFilterJ^a;前TNnorB,卯乩卜4CBC-sl^EB.con-.*IdsidQnfLlHrCti*口1口i型ni3口后"11:电e*lAppiLeHdcFjhe-iCtuLrLJug;然)\E»rtapubtcatbIini_core.^pplLc&TlEeFiIxtrChim.caFah«ril0pl!!CiTlceFiiia<hE.^n.java.:204)'ijiorf.如必.caitllu.cant.SuadaidPUfr^iiil--i.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论