当前位置:Gxlcms > 数据库问题 > druid-带监控功能的数据库连接池

druid-带监控功能的数据库连接池

时间:2021-07-01 10:21:17 帮助过:3人阅读

jdbc需要通过Connection数据库连接操作数据库。数据库连接的创建很昂贵,我们不能每执行一条sql语句就创建一个数据库连接,一般都是通过数据库连接池对连接进行管理,但mysql数据库存在8小时问题(如果数据库连接超过8小时没被使用,mysql自动断掉该连接),超过8小时后,从连接池中获取到的连接可能已经失效,从而导致异常出现,对此可以在连接池的配置文件中设置连接的有效时间等配置解决,尽管这样,连接池的作用是利大于弊。目前比较流行的连接池有dbcp、c3p0等。最近看了下阿里的开源项目druid,它不仅是一个数据库连接池,还提供了监控功能,它有以下优点:1、很方便的替换dbcp和c3p0连接池;2、性能比dbcp、c3p0等连接池好;3、采用filter-chain责任链模式,很方便的添加监控功能以及对数据库用户名和密码加密功能。

通过在web.xml中配置

<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>

可以统计出sql语句的执行时间、执行次数等数据。在web.xml中配置

  <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,*.png,*.css,*.ico,/druid/*</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>DruidWebStatFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

可以统计出每个请求的请求次数、请求时间等数据,同时在内置的监控页面weburi-detail.html中,查看JdbcPoolConnectionOpenCount和JdbcPoolConnectionCloseCount属性,如果不相等,表示连接有泄漏。具体的一些参数配置可参考https://github.com/alibaba/druid。

druid-带监控功能的数据库连接池

标签:

人气教程排行