查看原文
其他

Druid-目前最好的连接池

javastack Java技术栈 2019-12-19


Druid是什么

Druid是阿里开源的连接池,是Java语言中最好的数据库连接池.Druid能够提供强大的监控和扩展功能,是为监控而生的数据库连接池!

GitHub:https://github.com/alibaba/druid/

添加依赖

  1. <dependency>

  2.    <groupId>com.alibaba</groupId>

  3.    <artifactId>druid</artifactId>

  4.    <version>1.1.2</version>

  5. </dependency>

参考配置

  1. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">

  2.      <!-- 基本属性 url、user、password -->

  3.      <property name="url" value="${jdbc_url}" />

  4.      <property name="username" value="${jdbc_user}" />

  5.      <property name="password" value="${jdbc_password}" />

  6.      <!-- 配置初始化大小、最小、最大 -->

  7.      <property name="initialSize" value="1" />

  8.      <property name="minIdle" value="1" />

  9.      <property name="maxActive" value="20" />

  10.      <!-- 配置获取连接等待超时的时间 -->

  11.      <property name="maxWait" value="60000" />

  12.      <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->

  13.      <property name="timeBetweenEvictionRunsMillis" value="60000" />

  14.      <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->

  15.      <property name="minEvictableIdleTimeMillis" value="300000" />

  16.      <property name="validationQuery" value="SELECT 'x'" />

  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" value="20" />

  23.      <!-- 配置监控统计拦截的filters -->

  24.      <property name="filters" value="stat" />

  25. </bean>

通常来说,只需要修改initialSize、minIdle、maxActive。

如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false。

连接池监控

在web.xml中加入以下配置:

  1. <!-- Druid连接池监控 -->

  2. <servlet>  

  3.    <servlet-name>DruidStatView</servlet-name>  

  4.    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>

  5. </servlet>  

  6. <servlet-mapping>  

  7.    <servlet-name>DruidStatView</servlet-name>  

  8.    <url-pattern>/druid/*</url-pattern>  

  9. </servlet-mapping>  

  10. <filter>

  11.    <filter-name>DruidWebStatFilter</filter-name>

  12.    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>

  13.    <init-param>

  14.        <param-name>exclusions</param-name>

  15.        <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>

  16.    </init-param>

  17. </filter>

  18. <filter-mapping>

  19.    <filter-name>DruidWebStatFilter</filter-name>

  20.    <url-pattern>/*</url-pattern>

  21. </filter-mapping>


非常强大的监控页面!




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存