JAVA資料庫連接池的革命 -- 從BoneCP到HikariCP

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   ar   使用   java   

從BoneCP到HikariCP

    今天筆者本想更新一下項目中使用到的BoneCP版本的。卻無意發現jolbox網站打不開了。起初以為是被牆掉了,經過一番尋找,居然在BoneCP的Github站看到了如下的一段話:

    BoneCP的作者不知何時修改了簡述。(ps:紅色框中的部分意思:雖然BoneCP效能優於老舊的C3PO和DBCP串連池,但是現在應該被捨棄了,以迎接HikariCP)

    作者詞語之間充滿了悲涼之感,好比當年的少年俠客,風流倜儻,如今已是遲暮之年,不得不退出江湖,何其悲涼。

    在筆者胡亂感傷一通過後,那麼問題就來了。

HikariCP是蝦米?

  Github首頁:http://brettwooldridge.github.io/HikariCP/

  HikariCP是一個高效的資料庫連接池。

  • One Connection Cycle is defined as single DataSource.getConnection()/Connection.close().
    • In Unconstrained benchmark, connections > threads.
    • In Constrained benchmark, threads > connections (2:1).
  • One Statement Cycle is defined as single Connection.prepareStatement(),Statement.execute(), Statement.close().

1 Versions: HikariCP 2.1.0, BoneCP 0.8.0, Tomcat 8.0.9, Vibur 1.2.0, C3P0 0.9.5-pre8, Java 8u20 
2 Java options: -server -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xmx512m

 

從HikariCP網站給出的對比圖來看。其效能相比於BoneCP有了質的變化,革命性的變更。

筆者因為使用了Spring架構。所以更換使用HikariCP相當簡單,只要將原本BoneCP的配置資訊修改一下就好了。詳細見下:

 

 1 <!-- HikariCP 高效能資料庫串連池 --> 2     <bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource"> 3         <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 4         <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/black1?useUnicode=true&amp;characterEncoding=UTF-8"/> 5         <property name="username" value="root"/> 6         <property name="password" value=""/> 7         <!-- Default settings --> 8         <!-- 控制自動認可行為 default:true --> 9         <property name="autoCommit" value="true"/>10         <!--串連池擷取的串連是否唯讀 default:false-->11         <property name="readOnly" value="false"/>12         <!--控制串連的事務隔離等級 default:none-->13         <property name="transactionIsolation" value="none"/>14         <!--設定catalog以便於支援查看catalogs , 若不指定的話將直接使用 JDBC driver使用的 default:none-->15         <property name="catalog" value="none"/>16         <!--最大連線逾時時間 default:30秒-->17         <property name="connectionTimeout" value="30000"/>18         <!--最大空閑逾時時間 default:10分鐘   -->19         <property name="idleTimeout" value="600000"/>20         <!--串連池中一個串連的最大生命週期 default:30分鐘-->21         <property name="maxLifetime" value="1800000 "/>22         <!--  ...還有一些其他配置屬性 有興趣可以看看 O(∩_∩)O哈哈~ -->23     </bean>

 

  Ps:筆者也是首次使用HikariCP類庫。具體的效能和優越性暫時還不好下定論。但是相信HikariCP開發組能發表這樣的對比圖,想來未必是空穴來風,暫時使用一下,過段時間再來完善效能是否表所示。持續關注中。

  HikariCP官方網網的一些教程文檔:https://github.com/brettwooldridge/HikariCP/wiki

  Maven : 

  【JDK1.8】

1 <dependency>2     <groupId>com.zaxxer</groupId>3     <artifactId>HikariCP</artifactId>4     <version>2.1.0</version>5     <scope>compile</scope>6 </dependency>

  【JDK1.6和1.7】:

1 <dependency>2     <groupId>com.zaxxer</groupId>3     <artifactId>HikariCP-java6</artifactId>4     <version>2.1.0</version>5     <scope>compile</scope>6 </dependency>

 


作者
TinyZ
出處:http://www.cnblogs.com/zou90512/
關於從事於網路遊戲服務端開發(JAVA)。喜歡接觸和瞭解新技術。通過不斷探索學習,提升自身價值。記錄經驗分享。
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結
如有問題,可以通過 [email protected] 聯絡我,非常感謝。
筆者網店: http://aoleitaisen.taobao.com. 歡迎圍觀

  

JAVA資料庫連接池的革命 -- 從BoneCP到HikariCP

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.