(阿里巴巴)數據庫鏈接池——Druid (未完持續更新)

  GitHub地址:https://github.com/leebingbin/  java

    Java程序很大一部分要操做數據庫,爲了提升性能操做數據庫的時候,有不得不使用數據庫鏈接池。數據庫鏈接池有不少選擇,c3p、dhcp、proxool等,druid做爲一名後起之秀,憑藉其出色的性能,也逐漸引入了你們的眼簾。Druid是一個開源項目,源碼託管在github上,源代碼倉庫地址是https://github.com/alibaba/druid 。同時每次Druid發佈正式版本和快照的時候,都會把源碼打包,你們能夠從上面的下載地址中找到相關版本的源碼。git

  爲何說Druid是「最好的數據庫鏈接池」?體如今哪些方面?這是如何實現的?github

  阿里巴巴是一個重度使用關係數據庫的公司,在生產環境中大量的使用Druid,經過長期在極高負載的生產環境中實際使用、修改和完善,讓Druid逐步發展成最好的數據庫鏈接池。Druid在監控、可擴展性、穩定性和性能方面都有明顯的優點。首先,強大的監控特性,經過Druid提供的監控功能,能夠清楚知道鏈接池和SQL的工做狀況。其次,方便擴展。Druid提供了Filter-Chain模式的擴展API,能夠本身編寫Filter攔截JDBC中的任何方法,能夠在上面作任何事情,好比說性能監控、SQL審計、用戶名密碼加密、日誌等等。Druid內置提供了用於監控的StatFilter、日誌輸出的Log系列Filter、防護SQL注入攻擊的WallFilter。阿里巴巴內部實現了用於數據庫密碼加密的CirceFilter,以及和Web、Spring關聯監控的DragoonStatFilter。第三,Druid集合了開源和商業數據庫鏈接池的優秀特性,並結合阿里巴巴大規模苛刻生產環境的使用經驗進行優化。數據庫

  怎麼配置maven( Maven倉庫查找公共的倉庫地址:http://www.mvnrepository.com/artifact/com.alibaba/druidwindows

  只須要在項目的pom.xml中加上dependency就能夠了。例如:maven

<dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>druid</artifactId>
         <version>${druid-version}</version>
 </dependency>

        配置_DruidDataSource參考配置:性能

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 
       <!-- 基本屬性 url、user、password -->
       <property name="url" value="${jdbc_url}" />
       <property name="username" value="${jdbc_user}" />
       <property name="password" value="${jdbc_password}" />
 
       <!-- 配置初始化大小、最小、最大 -->
       <property name="initialSize" value="1" />
       <property name="minIdle" value="1" /> 
       <property name="maxActive" value="20" />
 
       <!-- 配置獲取鏈接等待超時的時間 -->
       <property name="maxWait" value="60000" />
 
       <!-- 配置間隔多久才進行一次檢測,檢測須要關閉的空閒鏈接,單位是毫秒 -->
       <property name="timeBetweenEvictionRunsMillis" value="60000" />
 
       <!-- 配置一個鏈接在池中最小生存的時間,單位是毫秒 -->
       <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" />
 
       <!-- 打開PSCache,而且指定每一個鏈接上PSCache的大小 -->
       <property name="poolPreparedStatements" value="true" />
       <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />
 
       <!-- 配置監控統計攔截的filters -->
       <property name="filters" value="stat" /> 
   </bean>

        使用(druid-1.0.25.jar)數據庫鏈接加密操做流程優化

  1.進入到附件:druid-1.0.25.jar對應的路徑。例如(windows):ui

  2.執行命令:java -cp druid-1.0.25.jar com.alibaba.druid.filter.config.ConfigTools 密碼
    以下圖所示加密

  3.使用標記便可複製出內容,須要注意:不管是公鑰仍是密碼都只取publicKey:,password:後面的數據,且若是有換行去掉換行,公鑰和密碼每一個都是獨立的一行。
  4.把加密後的密碼公鑰配置到配置文件中便可。

GitHub地址:https://github.com/leebingbin/

相關文章
相關標籤/搜索