还剩17页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
基本配置及内置监控使用Druid.使用方法1首先从下载最新的包如果想使用最新的源码编译,可以从jar下载源码,然后使用命令行,或者导https://github.com/alibaba/druid maven入到中进行编译eclipse和类似,的配置项如下:dbcp druid缺省配置说明值配置这个属性的意义在于,如果存在多个数据源,监控的时候可以通过名字来区分开来如果没有配置,将会生成一个名字,name格式是DataSource-+System.identityHashCodethis连接数据库的不同数据库不一样例如url,mysql:jdbc:mysql://
10.
20.
153.104:3306/druid2jdbcllrloracle:jdbc:oracle:thin:@
10.
20.
149.85:1521:ocnauto连接数据库的用户名usernamepassword连接数据库的密码如果你不希望密码直接写在配置文件中,以上内容可以参考:.使用的内置监控功能2Druid、怎么打开的监控统计功能1Druid的监控统计功能是通过扩展实现,如果你要打开监控统计Druid filter-chain功能,配置的别名是,这个别名映射配置信息保存在StatFilter,StatFilter stat在中使用别名配置方druid-xxx.jar!/META-INF/druid-filter.properties springo式如下bean id=dataSourceclass=com.alibaba.druid.pool.DruidDataSource init-method=initdestroy-method=close......property name=filters value=stat//bean可以和其他的配置使用,比如StatFilter Filterbeanid=dataSourceclass=com.alibaba.druid.pool.DruidDataSource“init-method=“init”destroy-method=close property name=filters”value^^tatjog4j//bean其他详情可以参考https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFiIter、怎样使用的内置监控页面2Druid内置提供了一个用于展示的统计信息这个Druid StatViewServletDruid的用途包括StatViewServlet提供监控信息展示的页面提供监控信息的html JSONAPI注意使用,建议使用以上版本StatViewServlet)配置1web.xml是一个标准的需要配置在StatViewServlet javax.servlet.http.HttpServlet,你应用中的中web WEB-INF/web.xmlservlet-nameDruidStatView/servlet-nameservlet-classcom.alibaba.druid.support.http.StatViewServlet/servlet-class/servlet servlet-mappingservlet-nameDruidStatView/servlet-nameurl-pattern/druid/*/url-pattern/servlet-mapping根据配置中的来访问内置监控页面,如果是上面的配置,内置监url-pattern控页面的首页是/druid/index.html例如http://
110.
76.
43.235:9000/druid/index.html,http://
110.
76.
43.235:8080/mini-web/druid/index.html)配置和2allow deny展示出来的监控信息比较敏感,是系统运行的内部情况,如StatViewSerlvet果你需要做访问控制,可以配置和这两个参数比如allow denyservletservlet-nameDruidStatView/servlet-nameservlet-classcom.alibaba.druid.support.http.StatViewServlet/servlet-classinit-param param-name allow/param-nameparam-value
128.
242.
127.1/24,
128.
242.
128.1/param-value/init-param init-param param-namedeny/param-name param-value
128.
242.
127.4/param-value/init-param/servlet判断规则优先于,如果在列表中,就算在列表中,deny allowdeny allow也会被拒绝如果没有配置或者为空,则允许所有访问其他详情参考allowhttps://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE、内置监控中的和关联监控怎么配置?3Web Spring用于采集关联监控的数据WebStatFilter web-jdbc酉己置1web.xml filterfilter-nameDruidWebStatFilter/filter-name〉filter-class com.alibaba.druid.support.http.WebStatFilter/filter-classinit-param param-nameexclusions/param-nameparam-value*.js/.gif*.jpg/.png/.css/.ico/druid/*/param-valuez z/init-param/filter filter-mappingfilter-nameDruidWebStatFilter/filter-nameurl-pattern/*/url-pattern酉己置/filter-mapping2exlusions经常需要排除一些不必要的,比如等等配置在中比url js,/jslib/init-param如:init-param param-nameexclusions/param-nameparam-value*.js/.gif/.jpg/.png/.css/.ico/clruid/*/param-valuez/init-param配置3sessionStatMaxCount缺省是个你可以按需要进行配置,比如sessionStatMaxCount1000init-param param-namesessionStatMaxCount/param-name param-value1000/param-value/init-param酉己置4sessionStatEnable你可以关闭统计功能,比如sessioninit-param param-namesessionStatEnable/param-name param-value false/param-value/init-param酉己置5principalSessionName你可以配置,使得能够知道当前的的用principalSessionName druidsession户是谁比如init-paramparam-name principalSessionName/param-nameparam-valuexxx.user/param-value根据需要,把其中的■修改为你信息保存在/init-param xxx.user user中的session sessionNameo注意:如果你中保存的是非类型的对象,需要重载方session stringto Stri ng法6principalCookieName如果你的信息保存在中你可以配置使得user cookieprincipalCookieNamez知道当前的是谁druid userinit-paramparam-nameprincipalCookieName/param-nameparam-valuexxx.user/param-value根据需要,把其中的修改为你信息保存在/init-param xxx.user usercookie中的cookieName7profileEnable版本开始支持配置能够监控单个调用的列表profile,profileEnable urlsqlinit-param param-nameprofileEnable/param-name param-value true/param-value/init-param的其他相关问题可以查看Druidhttps://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98可以使用详细看这里ConfigFilterhttps://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter根据这一项可配可不配,如果不己置会根据自动识别1Pi druidurl自urldbType,driverClassName动识然后选择相应的driverClassName别初始化时建立物理连接的个数初始化发生在显示调用方init法,initialsize0或者第一次时getConnection最大连接池数量maxActive8已经不再使用,配置了也没效果maxldle8最小连接池数量minldle获取连接时最大等待时间,单位毫秒配置了之后,maxWait缺省启用公平锁,并发效率会有所下降,maxWait如果需要可以通过配置属性为使用非公平useUnfairLock true锁是否缓存也就是preparedStatement,PSCache对支持游标的数据库性能提升巨大,比如说PSCache oraclepoolPreparedStatemenfalse在以下的版本中没有功能,建议关闭掉mysql
5.5PSCachets及以上版本启建议开启
5.5PSCache,要启用必须配置大于当大于时,PSCache,0,0自动触发修改为poolPreparedStatements truemaxOpenPreparedStat在中,不会存在下占用内存过多的问Druid OraclePSCache-1ements题,可以把这个数值配置大一些,比如说100用来检测连接是否有效的要求是一个查询语句sql,如果为validationQuery null,testOnBorrowtestOnReturnvalidationQuery都不会其作用testWhileldle申请连接时执行检测连接是否有效,validationQuerytestOnBorrow true做了这个配置会降低性能归还连接时执行检测连接是否启效,validationQuerytestOnReturn false做了这个配置会降低性能建议配置为不影响性能,并且保证安全性true,申请连接的时候检测,如果空闲时间大于testWhileldle falsetimeBetweenEvictionRunsMillis,执行检测连接是否有效validationQuery有两个含义线程会检测连接的间隔时间1DestroytimeBetweenEvictionR的判断依据,详细看属性的说2testWhileldle testWhileldleunsMillis明numTestsPerEvictionR不再使用,个只支持一个DruidDataSource EvictionRununminEvictableldleTimeMillis物理连接初始化的时候执行的connectionlnitSqls sql根据dbTy自pe当数据库抛出一些不可恢复的异常时,抛弃连接exceptionsorter动识别属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有filters监控统计用的filtenstat日志用的filter:log4j防御注入的sql filtenwall类型是Listcom.alibaba.druid.filter.Filter,如果同时配置了和filters proxyFilters,proxyFilters是组合关系,并非替换关系表配置属性
1.1根据常用的配置属性,首先给出一个如下的配置文件,放置于目录下src
1.url:jdbc:mysql://localhost:3306/dragoon_v25_masterdb
2.username:root
3.password:aaaaaaaa
4.filters:stat
5.maxActive:
206.initialSize:l
7.maxWait:
600008.minIdle:
1010.#maxldle:
1511.timeBetweenEvictionRunsMillis:
6000012.minEvictableIdleTimeMillis:
30000013.validationQuery:SELECT x
14.testWhileIdle:true
15.testOnBorrow:false
16.testOnReturn:false
17.#poolPreparedStatements:true
18.maxOpenPreparedStatements:20对于长时间不使用的连接强制关闭
19.#
20.removeAbandoned:true超过分钟开始关闭空闲连接
21.#
3022.removeAbandonedTimeout:1800配置文件
1.1配置项中指定了各个参数后,在连接池内部是这么使用这些参数的数据库连接池在初始化的时候会创建个连接,当有数据库操作时,会从池中取出initialsize一个连接如果当前池中正在使用的连接数等于,则会等待一段时间,maxActive等待其他操作释放掉某一个连接,如果这个等待时间超过了则会报错;maxWait,如果当前正在使用的连接数没有达到,则判断当前是否空闲连接,如果maxActive有则直接使用空闲连接,如果没有则新建立一个连接在连接使用完毕后,不是将其物理连接关闭,而是将其放入池中等待其他操作复用同时连接池内部有机制判断,如果当前的总的连接数少于,则会建立新的空闲连接,以保证minildle连接数得到如果当前连接池中某个连接在空闲了minildle,时间后任然没有使用则被物理性的关闭掉有timeBetweenEvictionRunsMillis些数据库连接的时候有超时限制(连接在小时后断开),或者由于网络mysql8中断等原因,连接池的连接会出现失效的情况,这时候设置一个参testWhileldle数为,可以保证连接池内部定时检测连接的可用性,不可用的连接会被抛弃true或者重建,最大情况的保证从连接池中得到的对象是可用的当然,Connection为了保证绝对的可用性,你也可以使用为(即在获取testOnBorrow true对象时检测其可用性),不过这样会影响性能Connection、中的配置1Spring在文件中酉己置如下:!—使用连接池—applicationcontext.xml Druidbeanid=dataSource class=com.alibaba.druicl.pool.DruidDataSource IVH基本属性init-method=init destroy-method=close!—urL user,〈password—property name=url”value=jdbc:mysql://localhost:3306/testzeroDateTimeBehavior=convertToNull/property name=username”value=wlxu/propertyname=password value=wlxusstcd201403/property name=connectionproperties”value=com.mysqLjdbc.Driver/property!-配置初始化大小、最小、最大—nproperty name=initialSize value=ln nn11/property name=minldle value=l/propertyna me=m axAct i11ve value=20/!-配置获取连接等待超时的时间-property name=maxWaitvalue=60000/!-配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒—n〉property name=timeBetweenEvictionRunsMillis value=”60000”/!--配置一个连接在池中最小生存的时间,单位是毫秒propertyname=minEvictableldleTimeMillis”value=”300000”/property name=validationQuery value=SELECT/property name=testWhileldle”value=“true”/propertyH nH Hname=testOnBorrow value=false/property name=testOnReturnvalue=false”/!--打开,并且指定每个连接上的大小-!-如果用PSCache PSCache,则把配置为可以配置为Oracle poolPreparedStatementstrue,mysql false分库分表较多的数据库,建议配置为false-property,二name=poolPreparedStatements value=false”/property namemaxPoolPreparedStatementPerConnectionSizevalue=“20”/!-配置监控统计拦截的去掉后监控界面无法统计一filters,sqI二property name=filters valuestat”//bean手动创建
2.datasource如果不使用框架开发,也可以手动创建连接,采用new DruidDataSource或者的方式均可,前DruidDataSourceFactory.createDataSourceproperties者需要手动设置参数值,后者自动从配置文件中读取,可根据需要使用。