標籤: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&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