Druid連接池配置及sql監控使用

        數據庫操作是Java後臺開發過程中最爲重要的一部分,快速、穩定、安全的訪問數據庫能夠大大提升服務器的響應速度。我們剛開始接觸Java開發時都學過JDBC操作數據庫。對於一個簡單的數據庫應用,需要訪問數據庫時,就新創建一個連接,用完後就關閉它,這種情況下佔用系統資源不高,不會出現性能瓶頸。但是對於一個複雜的數據庫應用,頻繁的建立、關閉連接,會消耗大量的系統資源,非常容易使系統的性能陷入瓶頸。

        數據庫連接池的使用則能夠極大地提升系統的性能,更爲合理的操作數據庫。它具有幾點優勢:1)資源重用 2)更快的系統響應速度 3)新的資源分配手段 4)統一的連接管理,避免數據庫連接泄露

       常用的數據庫連接池有DBCP、C3P0、Proxool、Druid等等。其中Druid連接池阿里巴巴的一個數據庫連接池開源框架,它具有豐富的擴展功能,能夠穩定的訪問數據庫;同時還具有強大的數據庫監控功能,能夠幫助我們優化一些慢sql,可以通過可視化界面觀察sql執行情況。下面將介紹介紹一下Durid的配置。

1. 依賴的jar包

<!-- 連接池 -->

<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>druid</artifactId>

    <version>1.0.19</version>

</dependency>

2.spring xml文件配置

<!-- 配置數據源 -->

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>

    <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ora11g"/>

    <property name="username" value="admin"/>

    <property name="password" value="manager"/>

    <property name="validationQuery" value="select 1 from dual"/>

    <property name="testWhileIdle" value="true" />
    <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連接,單位是毫秒 -->

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

    <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->

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

    <!--maxActive: 最大連接數量 -->

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

    <!--initialSize: 初始化連接 -->

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

    <!-- 開啓Druid的監控統計功能 -->

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

</bean>

註釋:

(1) validationQuery屬性:用來檢測連接是否有效的sql。如果validationQuery爲null,testOnBorrow、testOnReturn、testWhileIdle都不會其作用。這個開啓的話會增加數據庫的壓力,因爲每次訪問數據庫都要測試連接是否可用。(曾遇到現場數據庫和web應用不在同一臺服務器上,連接不穩定,總是發生數據庫連接終端異常....加上這個跟配置好點...最後發現是網關定時切段數據庫連接問題..)

3.監控界面 web.xml配置

<servlet>

    <servlet-name>DruidStatView</servlet-name>

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

    <init-param>

        <!-- 用戶名 -->

        <param-name>loginUsername</param-name>

        <param-value>admin</param-value>

    </init-param>

    <init-param>

        <!-- 密碼 -->

        <param-name>loginPassword</param-name>

        <param-value>manager</param-value>

    </init-param>

</servlet>

<servlet-mapping>

    <servlet-name>DruidStatView</servlet-name>

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

</servlet-mapping>

4.監控界面訪問路徑

http://[ip]:[port]/項目名/druid/sql.html

 

 

 

 

當在web系統進行數據操作時,就能從上面監控界面中觀察到sql執行情況,從而優化sql語句,更好的提升web系統響應速度。

發佈了3 篇原創文章 · 獲贊 0 · 訪問量 783
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章