1. 程式人生 > >Druid連線池-配置監控介面

Druid連線池-配置監控介面

一、前言

      在阿里的資料庫連線池中,Druid是一個很好的選擇。她可以實現程式設計師的一些特殊的需求,比如像金鑰服務請求憑證,統計sql資訊,sql效能收集,sql注入檢測,sql翻譯等。

      Druid在阿里巴巴內部廣泛部署,由溫少帶隊研究。

二、環境要求

  • druid jar包

      小編使用的maven專案,匯入相關依賴:

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency>

 

三、配置檔案相關資訊

3.1 Spring-dao.xml

      我們使用spring管理Druid,在資料庫配置檔案中,配置下面的資訊:

      注意:要使用監控功能,<property name="filters" value="stat" />filters屬性要設定為stat。

      Druid的監控統計功能是通過filter-chain擴充套件實現,如果你要開啟監控統計功能,配置StatFilter ,StatFilter 的別名是stat,這個別名對映配置資訊儲存在druid-xxx.jar!/META-INF/druid-filter.properties。 在spring中使用別名配置方式如下:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd"> <!-- 資料庫連線池 --> <!-- 載入配置檔案 --> <context:property-placeholder location="classpath:conf/db.properties" /> <!-- 資料庫連線池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <!-- 基本屬性 url username password driverClassName--> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!--<property name="driverClassName" value="${jdbc.driver}" />--> <!--配置初始化大小、最小、最多連線數--> <property name="initialSize" value="1"/> <property name="maxActive" value="100" /> <property name="minIdle" value="5" /> <!--配置獲取連線等待超時時間--> <property name="maxWait" value="3000"/> <!--配置間隔多久進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒--> <property name="timeBetweenEvictionRunsMillis" value="6000"/> <!--配置一個連線在連線池中,最小生存的時間,單位是毫秒--> <property name="minEvictableIdleTimeMillis" value="30000"/> <property name="validationQuery" value="SELECT 'x'" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <!--開啟PSCache,並且指定每個連線上的PSCache的大小--> <property name="poolPreparedStatements" value="true"/> <property name="maxPoolPreparedStatementPerConnectionSize" value="20"/> <!-- 配置監控統計攔截的filters,去掉後監控介面sql無法統計 --> <property name="filters" value="stat" /> </bean> <!-- 讓spring管理sqlsessionfactory 使用mybatis和spring整合包中的 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 資料庫連線池 --> <property name="dataSource" ref="dataSource" /> <!-- 載入mybatis的全域性配置檔案 --> <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" /> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.dmsd.dao" /> </bean> </beans>

  •  

3.2 web.xml

       StatViewServlet 是一個標準的javax.servlet.http.HttpServlet ,需要配置在你web應用中的WEB-INF/web.xml中。

      StatViewSerlvet 展示出來的監控資訊比較敏感,是系統執行的內部情況,如果你需要做訪問控制,可以配置allow和deny這兩個引數。

      配置druid監控:

<!-- 配置druid監控--> <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> <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>

3.3 顯示介面

      執行專案後,輸入http://192.168.22.195:8082/teachingManagement-service/druid/sql.html,連線,就可以看到管理了介面:

 

四、小結

      配置過程還是很簡單,有了管理監控介面,就可以更好的對sql效能進行監控,使用也非常方便。