阿里Druid连接池配置使用

来源:互联网 发布:银科环企软件 编辑:程序博客网 时间:2024/05/22 06:38

标签: 数据库连接池Druid性能技术
 129人阅读 评论(0) 收藏 举报
 分类:
[html] view plain copy
  1. 项目中有用到数据库连接池技术,这次我们使用阿里公司的Druid连接池。Druid对数据库的监控做的很好,可以详细统计SQL执行的性能。  
[html] view plain copy
  1. 具体使用:如果是maven项目,加入如下依赖码到pom.xml文件中即可。  
[html] view plain copy
  1. <span style="font-size:18px;"><span style="white-space:pre">    </span></span><pre name="code" class="html"><span style="white-space:pre">  </span><dependency>    
  2.             <groupId>com.alibaba</groupId>    
  3.             <artifactId>druid</artifactId>    
  4.             <version>版本自选</version>    
  5. <span style="white-space:pre">    </span></dependency>    
[html] view plain copy
  1. </pre>如果没有用到maven,则需要导包。在开源中国的项目中去下载和查看相关文档。http://www.oschina.net/p/druid<pre>  
[html] view plain copy
  1. 具体配置如下,这个配置基本能满足项目需要。  
[html] view plain copy
  1. </pre><pre name="code" class="html"><span style="font-size:18px;"><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"  
  2.         init-method="init" destroy-method="close">  
  3.         <property name="url" value="jdbc:oracle:thin:@ip:1521:服务名" />   
  4.         <property name="username" value="用户名" />  
  5.         <property name="password" value="密码" />             
  6.         <!-- 配置初始化大小、最小、最大 -->  
  7.         <property name="initialSize" value="10" />  
  8.         <property name="minIdle" value="30" />  
  9.         <property name="maxActive" value="300" />  
  10.         <!-- 配置获取连接等待超时的时间 -->  
  11.         <property name="maxWait" value="3600000" />  
  12.         <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
  13.         <property name="timeBetweenEvictionRunsMillis" value="60000" />  
  14.         <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
  15.         <property name="minEvictableIdleTimeMillis" value="30000" />  
  16.         <property name="validationQuery" value="SELECT 'x' FROM dual" />  
  17.         <property name="testWhileIdle" value="true" />  
  18.         <property name="testOnBorrow" value="false" />  
  19.         <property name="testOnReturn" value="false" />  
  20.         <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->  
  21.         <property name="poolPreparedStatements" value="true" />  
  22.         <property name="maxPoolPreparedStatementPerConnectionSize"  
  23.             value="20" />  
  24.         <!-- 配置监控统计拦截的filters -->  
  25.         <property name="filters" value="stat"></property>  
  26.         <!-- <property name="filters" value="log4j" />  
  27.         <property name="proxyFilters">  
  28.             <list>  
  29.                 <ref bean="stat-filter" />  
  30.                 <ref bean="wall-filter" />  
  31.             </list>  
  32.         </property> -->  
  33.     </bean>  
  34.     <!-- 如果需要将统计信息写入log,就进行下面的配置,并在web.xml中作相应配置-->  
  35.     <!-- 配置阿里云的sql注入检测 -->  
  36.     <bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">  
  37.         对被认为是攻击的SQL进行LOG.error输出  
  38.         <property name="logViolation"  value="true"/>  
  39.         对被认为是攻击的SQL抛出SQLExcepton  
  40.         <property name="throwException" value="false" />  
  41.     </bean>  
  42.   
  43.     <!--配置阿里云连接池状态监控-->  
  44.     <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">  
  45.         监控sql执行大于1s的sql  
  46.         <property name="slowSqlMillis" value="1000" />  
  47.         <property name="logSlowSql" value="true" />  
  48.         <property name="mergeSql" value="true" />  
  49.     </bean></span>  
[html] view plain copy
  1. <span style="font-size:18px;">以下是web.xml中<span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">内置监控界面的配置:</span></span>  
[html] view plain copy
  1. <span style="font-size:18px;"><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;"></span></span><pre name="code" class="html"><servlet>  
  2.     <servlet-name>DruidStatView</servlet-name>  
  3.     <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>  
  4.   </servlet>  
  5.   <servlet-mapping>  
  6.     <servlet-name>DruidStatView</servlet-name>  
  7.     <url-pattern>/druid/*</url-pattern>  
  8.   </servlet-mapping>  
[html] view plain copy
  1. <span style="font-size:18px;"><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25.2px;">  
  2. </span></span>  
大致配置就是这样,在项目启动后,输入:http://[ip]:[端口]/[项目名(看具体路径)]/druid/index.html
就可以打开Druid的监控界面。
0 0