从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的配置信息修改一下就好了。详细见下:

 <!-- HikariCP 高性能数据库连接池 -->

<bean id="dataSourceHikari" class="com.zaxxer.hikari.HikariDataSource">

<property name="driverClassName" value="com.mysql.jdbc.Driver"/>

<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/black1?useUnicode=true&amp;characterEncoding=UTF-8"/>

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

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

<!-- Default settings -->

<!-- 控制自动提交行为 default:true -->

<property name="autoCommit" value="true"/>

<!--连接池获取的连接是否只读 default:false-->

<property name="readOnly" value="false"/>

<!--控制连接的事务隔离等级 default:none-->

<property name="transactionIsolation" value="none"/>

<!--设置catalog以便于支持查看catalogs , 若不指定的话将直接使用 JDBC driver使用的 default:none-->

<property name="catalog" value="none"/>

<!--最大连接超时时间 default:30秒-->

<property name="connectionTimeout" value="30000"/>

<!--最大空闲超时时间 default:10分钟 -->
<property name="idleTimeout" value="600000"/>

<!--连接池中一个连接的最大生命周期 default:30分钟-->
<property name="maxLifetime" value="1800000 "/>

<!-- ...还有一些其他配置属性 有兴趣可以看看 O(∩_∩)O哈哈~ -->

</bean>

  Ps:笔者也是首次使用HikariCP类库。具体的性能和优越性暂时还不好下定论。但是相信HikariCP开发组能发表这样的对比图,想来未必是空穴来风,暂时使用一下,过段时间再来完善性能是否如图表所示。持续关注中。

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

  Maven :

  【JDK1.8】

 <dependency>
<groupId>com.zaxxer</groupId>

<artifactId>HikariCP</artifactId>

<version>2.1.0</version>

<scope>compile</scope>

</dependency>

  【JDK1.6和1.7】:

 <dependency>
<groupId>com.zaxxer</groupId>

<artifactId>HikariCP-java6</artifactId>

<version>2.1.0</version>

<scope>compile</scope>

</dependency>


作者
TinyZ
出处:http://www.cnblogs.com/zou90512/
关于作者:从事于网络游戏服务端开发(JAVA)。喜欢接触和了解新技术。通过不断探索学习,提升自身价值。记录经验分享。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接
如有问题,可以通过 zou90512@126.com 联系我,非常感谢。
笔者网店: http://aoleitaisen.taobao.com. 欢迎围观

JAVA数据库连接池的革命 -- 从BoneCP到HikariCP(转)的更多相关文章

  1. JAVA数据库连接池的革命 -- 从BoneCP到HikariCP

    从BoneCP到HikariCP 今天笔者本想更新一下项目中使用到的BoneCP版本的.却无意发现jolbox网站打不开了.起初以为是被墙掉了,经过一番查找,居然在BoneCP的Github站看到了如 ...

  2. 主流Java数据库连接池分析(C3P0,DBCP,TomcatPool,BoneCP,Druid)

    主流数据库连接池 常用的主流开源数据库连接池有C3P0.DBCP.Tomcat Jdbc Pool.BoneCP.Druid等 C3p0: 开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDB ...

  3. [转帖]为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用

    为什么HikariCP被号称为性能最好的Java数据库连接池,如何配置使用 原创Clement-Xu 发布于2015-07-17 15:53:14 阅读数 57066  收藏 展开 HiKariCP是 ...

  4. Java数据库连接池封装与用法

    Java数据库连接池封装与用法 修改于抄袭版本,那货写的有点BUG,两个类,一个用法 ConnectionPool类: package com.vl.sql; import java.sql.Conn ...

  5. Java数据库连接池

    转载过来的,最近在做一个小网站,准备使用这种方法.     Java jdbc数据库连接池总结! 1. 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及, ...

  6. 一个JAVA数据库连接池实现源码

    原文链接:http://www.open-open.com/lib/view/open1410875608164.html // // 一个效果非常不错的JAVA数据库连接池. // from:htt ...

  7. Java数据库连接池的几种配置方法(以MySQL数据库为例)

    Java数据库连接池的几种配置方法(以MySQL数据库为例) 一.Tomcat配置数据源: 前提:需要将连接MySQL数据库驱动jar包放进Tomcat安装目录中common文件夹下的lib目录中 1 ...

  8. Java数据库连接池详解

    http://www.javaweb1024.com/java/JavaWebzhongji/2015/06/01/736.html 对于共享资源,有一个很著名的设计模式:资源池(Resource P ...

  9. Java数据库连接池比较(c3p0,dbcp,proxool和BoneCP)

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp21 Java框架数据库连接池比较(c3p0,dbcp和proxool,Bo ...

随机推荐

  1. div contenteditable 重新编辑时focus光标定位到前面问题解决

    <div class="editdiv" id="edit" contenteditable="true">这是添加文字< ...

  2. springboot导入excel到mysql

    @Controller @RequestMapping(path = "/excel") public class ImportController { @Autowired pr ...

  3. php链表笔记:单链表反转

    <?php /** * Created by PhpStorm. * User: huizhou * Date: 2018/12/1 * Time: 11:41 */ /** * 1.链表的反转 ...

  4. SPSS应用之非参数检验

    SPSS应用之非参数检验 统计学的假设检验可以分为参数检验和非参数检验,参数检验是根据一些假设条件推算而来,当这些假设条件无法满足的时候,参数检验的效能会大打折扣,甚至出现错误的结果,而非参数检验通常 ...

  5. 使用R进行数据提取

    使用R进行数据提取 数据提取是数据分析日常工作中遇到最多的需求,本篇文章介绍如何通过R按特定的维度或条件对数据进行提取,完成数据提取需求. 读取并创建数据表 首先第一步是读取数据,并创建名称为loan ...

  6. PAT甲级——A1076 Forwards on Weibo

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  7. ireport 无法打开问题

    打开时闪退 ,是因为jdk版本过高的原因:https://blog.csdn.net/aust_glj/article/details/52291240 相关软件下载地址: JasperReports ...

  8. 解析Request和Response

    简介: Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象即然代表请求和响应 ...

  9. java基础之Random类

    Random类 Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时,随机算法的起源数字称为种子数(seed), 在种子数的基础上进行一定的变换,从而产生需要的随机数字. 相同种子 ...

  10. <每日一题>题目23:桶排序

    ''' 桶排序:最快最简单的排序 缺点:最占内存 类型:分布式排序 ''' import cProfile import random def bucketSort(nums): #选出最大的数 ma ...