mysql连接池cp_BeeCP

BeeCP是一款高性能的JDBC连接池,具有优于C3P0的性能,代码简洁,功能包括超时支持、两种模式、断网恢复、预编译SQL缓存等。支持JMX监控,提供SpringBoot配置示例,同时提供了性能测试结果,对比了BeeCP与其他知名连接池的性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

软件简介

一:介绍

87761691554db62a427677e6b55bbf77.png

小蜜蜂池:一款高性能JDBC连接池

二:特点

1:性能好:高于光连接池

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

三:版本下载

Java7

com.github.chris2018998

BeeCP

2.0.0

Java6

com.github.chris2018998

BeeCP

1.6.0

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

四:功能支持

1:请求超时支持

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

3:断网连接池自动恢复

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

5:PreparedStatement缓存支持(也可不用)

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

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

8: 支持JMX

9:支持连接工厂自定义

五:配置项说明

配置项

描述

备注

username

JDBC用户名

password

JDBC密码

jdbcUrl

JDBC连接URL

driverClassName

JDBC驱动类名

poolName

连接池名

fairMode

连接池是否公平模式

公平锁,等待者优先获取连接

initialSize

连接池初始大小

maxActive

连接池最大个数

concurrentSize

请求并发数(借用者线程数)

不允许大于连接最大数

preparedStatementCacheSize

SQL宣言缓存大小

0 表示不适用缓存

testOnBorrow

借用者获取连接后,测试连接有效性

无效则关闭连接

testOnReturn

连接归还池时,测试连接有效性

无效则关闭连接

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监控支持开关

六:参考Demo(SpringBoot)

application.properties

spring.datasource.username=xx

spring.datasource.password=xx

spring.datasource.url=xx

spring.datasource.driverClassName=xxx

spring.datasource.datasourceJndiName=xxx

@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);

}

}

}

七:性能测试

1: 100万次(1000线程 x

1000次)访问真实数据库,测试连接池性能,并打印耗时分布以及平均耗时,最后依据平时耗时为各连接池进行名次排列,单次时间统计(机器状态对测试结果有较大影响),单次计时间范围:[datasource.getConnection(),connection.prepareStatement,statement.execute(),statement.close(),connection.close()]

下面为各连接池在mysql5.6的下测试结果(单位:毫秒)

Bee_C(5.3623) > Bee_F(6.8492) > HikariCP(9.0176)

2: 以光连接池性能基准测试结果

796d44e036022eba737bff4f15678505.png

1:工具内置当前JDBC领域最强的几个连接池(CP30,DBCP,Tomcat,光连接池,Druid)

2:无需安装数据库,机器环境只需Path包含:JDK1.8,Maven

3:机器空载(开机后的最佳状态),需要机器与网络保持联通(跑分前Maven自动完成依赖下载)

4:解压下载包后一键执行Run.bat(CMD,在命令模式下,进入释放包后的目录,敲入:Run.bat,回车)

5:执行后静等10分钟左右,工具自动打印各连接池的分值(欢迎把结果贴在项目中留言中或其他您中意的地方)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值