软件简介

一:介绍
小蜜蜂池:一款高性能JDBC连接池,项目地址请访问:https://github.com/Chris2018998/BeeCP

二:特点

1:性能好,比光连接池更快,

2:代码少:21个文件,2600行源码

   想知道它性能高的根本原因吗?请点击这里

三:性能测试

1:100万次借用测试(1000线程 x 1000次),单次计时范围[datasource.getConnection(),connection.close()] 结果如下

时间(ms) HikariC3.3.1 Bee_F(BeeCP-2.3.2) Bee_C(BeeCP-2.3.2)
总时间 151516 53384 142
平均时间 0.1515 0.0534 0.0001

Bee_F:公平模式池,Bee_C:竞争模式池

总时间=线程1耗时 + 线程2耗时 + ...... + 线程1000耗时, 平均时间 = 总时间/1000000

测试电脑: Win7 I3-7100 8G mysql5.6.46_64 连接池设置: init size10 max size:10

每次测试重新启数据库,日志文件下载: 20200417_JDBCPool_I37100.log

性能测试代码请访问项目:https://github.com/Chris2018998/PoolPerformance

2: 采用光连接池的性能基准测试结果(I3-7100,8G)

PoolPerformaceCompare.png

下载性能测试源码:HikariCP-benchmark_BeeCP.zip

(释放压缩包,直接运行Run.bat, 环境要求:JDK1.8 ,Maven)

四:参考Demo

application.properties

spring.datasource.username=xx
spring.datasource.password=xx
spring.datasource.url=xx
spring.datasource.driverClassName=xxx
spring.datasource.datasourceJndiName=xxx

DataSourceConfig.java

@Configuration
public class DataSourceConfig {
  @Value("${spring.datasource.driverClassName}")
  private String driver;
  @Value("${spring.datasource.url}")
  private String url;
  @Value("${spring.datasource.username}")
  private String user;
  @Value("${spring.datasource.password}")
  private String password;
  @Value("${spring.datasource.datasourceJndiName}")
  private String datasourceJndiName;
  private BeeDataSourceFactory dataSourceFactory = new BeeDataSourceFactory();
  
  @Bean
  @Primary
  @ConfigurationProperties(prefix="spring.datasource")
  public DataSource primaryDataSource() {
    return DataSourceBuilder.create().type(cn.beecp.BeeDataSource.class).build();
  }
  
  @Bean
  public DataSource secondDataSource(){
    return new BeeDataSource(new BeeDataSourceConfig(driver,url,user,password));
  }
  
  @Bean
  public DataSource thirdDataSource()throws SQLException {
    try{
       return dataSourceFactory.lookup(datasourceJndiName);
     }catch(NamingException e){
       throw new SQLException("Jndi DataSource not found:"+datasourceJndiName);
     }
  }
}

五:版本下载

Java7

<dependency>
   <groupId>com.github.chris2018998</groupId>
   <artifactId>beecp</artifactId>
   <version>3.0.2</version>
</dependency>

Java6

<dependency>
   <groupId>com.github.chris2018998</groupId>
   <artifactId>BeeCP</artifactId>
   <version>1.6.7</version>
</dependency>

友情提示:建议使用最新版本

六:功能支持

1:请求超时支持

2:两种模式:公平与竞争

3:断网连接池自动恢复

4:闲置超时和持有超时处理

5:支持连接回收前,事物回滚

6:支持连接回收前,属性重置(比如:autoCommit,transactionIsolation,readonly,catlog,schema,networkTimeout)

7:  支持XADataSource

8: 支持JMX

9:支持连接工厂自定义起

:配置项说明

配置项 描述 备注
username JDBC用户名  
password JDBC密码  
jdbcUrl JDBC连接URL  
driverClassName JDBC驱动类名  
poolName 连接池名  
fairMode 连接池是否公平模式 公平锁,等待者优先获取连接
initialSize 连接池初始大小  
maxActive 连接池最大个数  
borrowConcurrentSize 请求并发数(借用者线程数) 不允许大于连接最大数
defaultAutoCommit 连接是否为自动提交 默认true
defaultTransactionIsolation 事物等级 默认读提交,Connection.TRANSACTION_READ_COMMITTED
defaultCatalog    
defaultSchema    
defaultReadOnly   默认false
maxWait 连接借用等待最大时间(毫秒) 默认8秒,连接请求最大等待时间
idleTimeout 连接闲置最大时间(毫秒) 默认3分钟,超时会被清理
holdIdleTimeout 连接被持有不用的最大时间(毫秒) 默认5分钟,超时会被清理
connectionTestSQL 连接有效性测试SQL语句 一条 select 语句,不建议放入存储过程
connectionTestTimeout 连接有效性测试超时时间(毫秒) 执行查询测试语句时间,在指定时间范围内等待反应
connectionTestInterval 连接测试的间隔时间(毫秒) 默认500毫秒 连接上次活动时间点与当前时间时间差值小于它,则假定连接是有效的
forceCloseConnection 是否需要暴力关闭连接 默认false;true:直接关闭使用中连接,false:等待处于使用中归还后再关闭
waitTimeToClearPool 延迟清理的时候时间(秒) 默认3秒,非暴力清理池下,还存在使用中的连接,延迟等待时间再清理
idleCheckTimeInitDelay 闲置扫描线程延迟时间再执行第一次扫描(毫秒)  
connectionFactoryClassName 自定义的JDBC连接工作类名 默认为空
enableJMX

JMX监控支持开关

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (47)

加载中
加油(ง •̀_•́)ง,改天看看
昨天 00:00
回复
举报
欧德软件作者
恳请网友们对这个小工具进行公测 com.github.chris2018998 beecp 3.0.2
前天 23:33
回复
举报
欧德软件作者
BeeCP-3.0.0已经发布到Maven,有兴趣的朋友看看
10/18 11:50
回复
举报
欧德软件作者
10/17 11:44
回复
举报
欧德软件作者
10/08 13:57
回复
举报
欧德软件作者
用问德鲁依的性能标准做了性能测试 地址: https://my.oschina.net/u/3918073/blog/4547530
09/05 19:50
回复
举报
支持在tomcat中通过JNDI的方式配置数据源吗
08/30 19:00
回复
举报
欧德软件作者
可以的,需要指定数据源的factory
08/31 12:53
回复
举报
欧德软件作者
我尽快给个例子。
08/31 12:54
回复
举报
08/31 13:37
回复
举报
欧德软件作者
做了一个例子,地址 https://github.com/Chris2018998/BeeCP/blob/master/doc/other/test.rar 压缩包中有个Readme文件
08/31 22:53
回复
举报
收到
08/31 23:13
回复
举报
跳转到这个地址,没法下载:https://raw.githubusercontent.com/Chris2018998/BeeCP/master/doc/other/test.rar
09/01 09:29
回复
举报
欧德软件作者
09/01 19:53
回复
举报
建议多出点源码分析,大伙可以学习,还可以了解
08/24 09:46
回复
举报
欧德软件作者
好的。
08/24 12:17
回复
举报
支持java8吧
08/22 22:02
回复
举报
欧德软件作者
可以的
08/22 22:49
回复
举报
欧德软件作者
下一版本加入监控的Web界面
08/22 17:32
回复
举报
更多评论
发表于数据库专区
10/18 01:03

beecp-3.0.0 发布,一款 JDBC 连接池

1:基本介绍 BeeCP: 小蜜蜂连接池 , 一款轻量级JDBC连接池 2:更新内容 1: 移除PreparedStatement缓存(一般驱动都提供) 2: 增加XADataSource支持 3:版本下载 <dependency> <groupId>com.github.chris2018998</groupId> <artifactId>beecp</artifactId> <version>3.0.0</version> </dependency>...

9
3
发表于数据库专区
08/23 10:45

BeeCP-2.5.4 发布,一款高性能 JDBC 连接池

1:基本介绍 小蜜蜂连接池是一款高性能的JDBC连接池,下面是与主流连接池的性能测试对比图 测试机器:CPU: I3-7100,内存: 8G,操作系统:Win7_64 性能测试包地址: https://github.com/Chris2018998/BeeCP/blob/master/doc/performance/HikariCP-benchmark_BeeCP.zip 2:版本内容(BeeCP-2.5.4) 1:增加MonitorVo对象以及...

18
9
发表了资讯
08/15 19:24

BeeCP 2.5.3 发布,一款高性能 JDBC 连接池

1:基本介绍 小蜜蜂连接池是一款高性能的JDBC连接池,下面是与主流连接池的性能测试对比图 测试机器:CPU: I3-7100,内存: 8G,操作系统:Win7_64 性能测试包: 地址1: https://github.com/Chris2018998/BeeCP/blob/master/doc/other/HikariCP-benchmark_SafeClose.zip 地址2: https://gitee.com/mirrors/BeeCP/blob/mas...

20
6
发表于服务端专区
08/08 17:41

BeeCP-2.5.1 发布,一款高性能 JDBC 连接池

1:基本介绍 小蜜蜂连接池是一款高性能的JDBC连接池,下面是与主流连接池的性能测试对比图 测试机器:CPU: I3-7100,内存: 8G,操作系统:Win7_64 性能测试包: https://github.com/Chris2018998/BeeCP/blob/master/doc/other/HikariCP-benchmark_SafeClose.zip 2:版本内容(BeeCP-2.5.1) 1:优化池中等待/传递逻辑,性...

8
18
发表于开发技能专区
07/26 09:36

BeeCP-2.4.9 发布,一款高性能能 JDBC 连接池

1:基本介绍 小蜜蜂连接池是一款高性能的JDBC连接池,下面是与主流连接池的性能测试对比图 测试机器:CPU: I3-7100,内存: 8G,操作系统:Win7_64 性能测试包: https://github.com/Chris2018998/BeeCP/blob/master/doc/other/HikariCP-benchmark_SafeClose.zip 2:版本内容(BeeCP-2.4.9) 1:优化池中等待/传递逻辑,性...

5
12
发表于软件架构专区
06/30 07:07

BeeCP-Starter 1.3.1 发布,Spring Boot 上的启动器

BeeCP-Starter是小蜜蜂连接池在Springboot上的启动器 相关功能 1:文件方式配置数据源信息 2:支持多数据源配置 3:可通过自定义的方式支持其他数据源 4:支持配置Jndi数据源引入配置 运行依赖 1:Java版本:JDK1.8 2:Springboot版本:2.0.9.RELEASE 3:BeeCP版本:2.4.7 版本下载 <dependency>   <groupId>com.github...

3
10
发表于数据库专区
06/25 12:49

BeeCP 2.4.7 版本发布,轻量级 JDBC 连接池

小蜜蜂连接池(BeeCP)是一款轻量,高性能JDBC连接池,支持平衡与竞争模式, 内部采用创新式等待与传递逻辑段, 有关性能高的原因,请阅读博客文章 ,更多细节请访问项目 本次更新 1:局部代码优化 2:内部线程优化 版本下载 <dependency>   <groupId>com.github.chris2018998</groupId>   <artifactId>BeeCP</artifactId>   <ve...

1
5
发表于软件架构专区
06/14 14:09

BeeCP2.4.4 发布,高性能 JDBC 连接池

BeeCP(小蜜蜂连接池)2.4.4版本连接安全关闭优化,涉及以下几个点 1: Connection.close增加同步处理 如果多线程并发调用该方法,只能有一个能执行成功,其他失败。 * Connection.close方法的背后,就是触发连接释放,并传递给等待者。不清楚 光连接池,Tomcat-JDBC等主流连接池是否存在这个问题?不增加安全措施,一个连...

8
10
发表于AI & 大数据专区
06/08 09:58

BeeCP 2.4.3 发布,增加连接安全关闭

小蜜蜂连接池(BeeCP): 一款高性能的,轻量级JDBC连接池,使用独创式自加入,自离开的等待队列技术,支持平衡与竞争两种模式. 修改内容 1:支持连接安全关闭 2:部分代码优化 版本下载(JDK1.7) <dependency>    <groupId>com.github.chris2018998</groupId>    <artifactId>BeeCP</artifactId>    <version>2.4.3</v...

1
1
发表于数据库专区
05/30 14:36

BeeCP 2.4.1 发布

更新内容如下: 1:增加MaxLiefTime控制,默认时间为30分钟,超过时间会被清理 2:修复连接创建线程偶偶出现空跑的Bug 项目详细介绍: https://www.oschina.net/p/beecp 版本下载地址: https://github.com/Chris2018998/BeeCP/upload/master/doc/release <dependency> <groupId>com.github.chris2018998</groupId> ...

2
3
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于软件架构专区
07/18 20:38

与JDK队列PK一下性能,结果有点让人感到意外

队列类: https://github.com/Chris2018998/BeeCP/blob/master/src/main/java/cn/beecp/util/FastTransferQueue.java 测试机器 CPU: I5-4210M(2.6赫兹,双核4线程) 内存: 8G OS: win7_64 JDK: Java1.8.0_65-b17 Be......

0
0
发表于数据库专区
10/04 18:08

用Jmeter压测一下

OS: win7_64 8G内存 CPU:I5-4210M(2.6hz 双核4线程) java: Java8 驱动:光连接池的Mock驱动 源码: https://github.com/Chris2018998/BeeCP/blob/master/doc/temp/JmeterTest_src.rar 最新包: https://github.c......

0
0
发表于软件架构专区
08/20 22:01

用Druid性能基准测试了一下, 但没有看懂测试结果

CPU: I5-4210M(2.6Hz), OS:Win7_64 内存:8G 测试类: https://github.com/alibaba/druid/blob/master/src/test/java/com/alibaba/druid/benckmark/pool/Case1.java thread 5 druid millis : 217; YGC 1 FGC 0 blo......

0
0
发表于AI & 大数据专区
09/15 22:56

测试记录: 连接池做一次结果集(ResultSet)测试

代码类: https://github.com/Chris2018998/BeeCP/blob/master/doc/temp/TestResultSet.java *******************开始测试数据源(BeeCP)******************* BeeCP-通过,<检查由executeQuery执行的结果值必须等于S......

0
0
发表于软件架构专区
10/13 23:31

8秒超时测试

最近收到网友反馈:希望提供8秒超时的压力分布测试情况,要有失败统计 PC: I5-4210M(2.6Hz) ,12G内存,Win7_64, Java: java8_.0.65, mariadb-10.4.13,驱动:mysql-connector-java-5.1.48.jar Pool: 初始10个,最大......

1
0
发表于开发技能专区
09/05 19:12

连接池性能测试: 测试执行申请归还连接1,000,000(一百万)次总耗时性能对比

OS Win7_64 CPU intel i5-4210M 2.6GHz 4 core JVM java version "1.8.0_65" Pool: initialSize:10 maxPoolSize:50 Jdbc Connection Pool 1 thread 2 threads 5 threads 10 threads 20 threads 50 threads Druid ......

0
0
发表于软件架构专区
10/15 21:07

8秒超时测试,代码微调后再撸一次

测试环境与前相同 jar包位置: https://github.com/Chris2018998/BeeCP/blob/master/doc/temp/beecp-3.0.0.jar 日志文件: https://github.com/Chris2018998/BeeCP/blob/master/doc/temp/JDBCPool.log 连接池配置......

0
0
发表于数据库专区
10/05 20:44

对主流JDBC连接池进行一次缺陷扫描,比比看谁的缺陷更多

池名 缺陷数 c3p0-0.9.5.2 227 commons-dbcp-1.4 112 commons-dbcp2-2.6.0 89 tomcat-jdbc-9.0.38 50 HikariCP-3.4.5 90 BeeCP3.0.0 20 https://github.com/Chris2018998/BeeCP/blob/master/doc/temp/beecp-3.0.......

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
47 评论
47 收藏
分享
返回顶部
顶部