druid连接池配置详解Druid连接池的介绍及配置详解
Druid介绍
DRUID是阿⾥巴巴开源平台上⼀个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加⼊了⽇志监控,可以很好的监控DB池连接和SQL的执⾏情况,可以说是针对监控⽽⽣的DB连接池(据说是⽬前最好的连接池,不知道速度有没有BoneCP快)。
Druid是⼀个JDBC组件,它包括三部分:
DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
DruidDataSource ⾼效可管理的数据库连接池。
SQLParser
使⽤⽅法
DB数据源的使⽤⽅法也就是2种,⼀种是在代码中写死通过NEW操作符创建DataSSource,然后set⼀些连接属性,这⾥不在累述;另外⼀种是基于SPRING的配置⽅法,然后让SPRING的Context⾃动加载配置(以下配置⽂件默认都在项⽬根⽬录下conf⽂件夹中)
1、属性⽂件:application.properties(DataSource连接参数)
jdbc.sql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test
jdbc.username=root
jdbc.password=1qaz!QAZ
2、SPRING配置⽂件:l
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=" /schema/beans"
xmlns:xsi=" /2001/XMLSchema-instance" xmlns:batch=" /schema/batch"
xsi:schemaLocation=" /schema/beans
/schema/beans/spring-beans-4.0.xsd">
<bean id="propertyConfigure"
class="org.springframework.fig.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>./conf/application.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- 配置初始化⼤⼩、最⼩、最⼤ -->
<property name="initialSize" value="1" />
<property name="minIdle" value="1" />
<property name="maxActive" value="10" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="10000" />
<!-- 配置间隔多久才进⾏⼀次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置⼀个连接在池中最⼩⽣存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="testWhileIdle" value="true" />
<!-- 这⾥建议配置为TRUE,防⽌取到的连接不可⽤ -->
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的⼤⼩ -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="20" />
<!-- 这⾥配置提交⽅式,默认就是TRUE,可以不⽤配置 -->
<property name="defaultAutoCommit" value="true" />
<!-- 验证连接有效与否的SQL,不同的数据配置不同 -->
<property name="validationQuery" value="select 1 " />
<property name="filters" value="stat" />
<property name="proxyFilters">
<list>
<ref bean="logFilter" />
</list>
</property>
</bean>
<bean id="logFilter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter"> <property name="statementExecutableSqlLogEnable" value="false" />
</bean>
</beans>
上⾯红⾊标注部分为监控DB池连接执⾏监控,后⾯在做详细说明.
监控⽅式
1、WEB⽅式监控配置
<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>
<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>/public/*,*.js,*.css,/druid*,*.jsp,*.swf</param-value>
</init-param>
<init-param>
<param-name>principalSessionName</param-name>
<param-value>sessionInfo</param-value>
</init-param>
<init-param>
<param-name>profileEnable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>druidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
就可以打开Druid的监控页⾯了.
2、⽇志⽂件监控
Druid提供了多种⽇志⽂件监控 commons-logging、log4j等,这⾥我们主要使⽤slf4j和logback来进⾏⽇志监控配置。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论