Druid使用配置初步理解

Druid是什麼?

Druid首先是一個數據庫鏈接池。Druid是目前最好的數據庫鏈接池,在功能、性能、擴展性方面,都超過其餘數據庫鏈接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。css

Druid已經在阿里巴巴部署了超過600個應用,通過一年多生產環境大規模部署的嚴苛考驗。java

同時Druid不單單是一個數據庫鏈接池,它包括四個部分:
Druid是一個JDBC組件,它包括三個部分:git

Druid能夠作什麼?

  • 替換DBCP和C3P0。Druid提供了一個高效、功能強大、可擴展性好的數據庫鏈接池。
  • 能夠監控數據庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,可以詳細統計SQL的執行性能,這對於線上分析數據庫訪問性能有幫助。
  • 數據庫密碼加密。直接把數據庫密碼寫在配置文件中,這是很差的行爲,容易致使安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。
  • SQL執行日誌,Druid提供了不一樣的LogFilter,可以支持Common-Logging、Log4j和JdkLog,你能夠按須要選擇相應的LogFilter,監控你應用的數據庫訪問狀況。
  • 擴展JDBC,若是你要對JDBC層有編程的需求,能夠經過Druid提供的Filter機制,很方便編寫JDBC層的擴展插件。

在項目中使用Druid很是簡單,只要修改下配置文件就能夠了github

 

當咱們在javaWEB項目中使用到druid來做爲咱們的鏈接池的時候,必定不會忘了添加監控功能。web

首先是過濾器filter的配置,在web.xml中添加以下配置spring

 

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

過濾器中的配置,是用來定義咱們的監控選項,在以上的監控配置中,咱們定義了一個簡單的監控,並採用了大量的默認配置,若是你想使用更豐富的監控配置,能夠在druid的github wiki上獲取更多的選項,地址:druid Filter 配置數據庫

選項配置結束以後,就是咱們監控界面的路徑配置了,servlet配置咱們將在哪裏打開咱們的監控頁面,在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>

以上配置中,咱們將咱們的網頁監控路徑放在了,項目路徑下的 druid路徑中,相似於 www.myroject.com/druid.安全

一樣的,上面的配置只是一個簡單的配置,更豐富的選項,須要您移步:druid servlet 配置app

至此,一個簡單的web項目就配好了監控的頁面,可是大多數人在開發javaWEB項目中時都避免不了使用到各類框架和其餘的技術,我將在後面的博文中陸續寫出相應的配置方式。

spring配置

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

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

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

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

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

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

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

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

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

 <property name="timeBetweenEvictionRunsMillis" value="3000" />  

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

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

<property name="testWhileIdle" value="true" />  

<property name="testOnBorrow" value="false" />  

<property name="testOnReturn" value="false" />  

<property name="poolPreparedStatements" value="true" /> 

 <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> 

</bean>   

 


就能夠了.
監控頁面

相關文章
相關標籤/搜索