迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:BeeCP开源软件地址:https://gitee.com/Chris2018998/BeeCP开源软件介绍:一:简介小蜜蜂连接池(BeeCP)是一款轻量级JDBC连接池组件,它是中国开源社区的优质开源作品之一,具有性能高,代码轻,稳定好的特点。
二:版本下载Java7或更高 <dependency> <groupId>com.github.chris2018998</groupId> <artifactId>beecp</artifactId> <version>3.3.2</version></dependency> Java6 <dependency> <groupId>com.github.chris2018998</groupId> <artifactId>beecp</artifactId> <version>1.6.10</version></dependency> 三:参考例子
|
比较项 | BeeCP | HikariCP |
---|---|---|
关键技术 | ThreadLocal,信号量,ConcurrentLinkedQueue,Thread | FastList,ConcurrentBag,ThreadPoolExecutor |
相似点 | CAS使用,代理预生成,使用驱动自带Statement缓存 | |
差异点 | 支持公平模式,支持XA分布事务,强制回收持有不用的连接,单点缓存,队列复用,非移动等待,独创自旋控制/连接传递程序片段 | 支持池暂停 |
文件 | 37个源码文件,Jar包95KB | 44个源码文件,Jar包158KB |
性能 | 总体性能高40%以上(光连接池基准) |
德鲁伊(druid):作者名为:温绍锦,一名任职中国阿里的技术专家,其作品最早发布于2012年,专为监控设计(尽管内部含有大量监控属性, 但在性能方面仍有不俗表现),在中国有超多用户,点赞数超过25k。
光连接池(HikariCP):作者名为:Brett Wooldridge, 一位现居日本的美国Java专家,其作品最早发布于2014年,是高性能连接池的典型代表,已经被Java领域广泛使用。
BeeCP中部分灵感受启发于它们,感谢两位大师的贡献。
产品内部提供两个工厂接口分别用来创建本地连接和Xa连接(一般不建议自扩展)
数据源配置类(BeeDataSourceConfig)中有一个工厂类名配置项,支持4种类型
参考例子
如果连接数据库使用的是密文,产品内部提供一个可供扩展的解密类,使用时将实现类名注入配置中即可。
项名 | 描述 | 默认值 |
---|---|---|
username | JDBC用户名 | 空 |
password | JDBC密码 | 空 |
jdbcUrl | JDBC连接URL | 空 |
driverClassName | JDBC驱动类名 | 空 |
poolName | 池名,如果未赋值则会自动产生一个 | 空 |
fairMode | 是否使用公平模式 | false(竞争模式) |
initialSize | 连接池初始大小 | 0 |
maxActive | 连接池最大个数 | 10 |
borrowSemaphoreSize | 信号量许可大小 | min(最大连接数/2,CPU核心数) |
defaultAutoCommit | AutoComit默认值,未配置则从第一个连接上读取默认值 | 空 |
defaultTransactionIsolationCode | 事物隔离代码,未设置时则从第一个连接上读取默认值 | 空 |
defaultCatalog | Catalog默认值 ,未配置则从第一个连接上读取默认值 | 空 |
defaultSchema | Schema默认值,未配置则从第一个连接上读取默认值 | 空 |
defaultReadOnly | ReadOnly默认值 ,未配置则从第一个连接上读取默认值 | 空 |
maxWait | 连接借用等待最大时间(毫秒) | 8000 |
idleTimeout | 连接闲置最大时间(毫秒) | 18000 |
holdTimeout | 连接被持有不用最大允许时间(毫秒) | 18000 |
validTestSql | 连接有效性测试SQL语句 | SELECT 1 |
validTestTimeout | 连接有效性测试超时时间(秒) | 3 |
validAssumeTime | 连接测试的间隔时间(毫秒) | 500 |
forceCloseUsingOnClear | 是否直接关闭使用中连接 | false |
delayTimeForNextClear | 延迟清理的时候时间(毫秒) | 3000 |
timerCheckInterval | 闲置扫描线程间隔时间(毫秒) | 18000 |
connectionFactoryClassName | 自定义的JDBC连接工作类名 | 空 |
enableJmx | JMX监控支持开关 | false |
printConfigInfo | 是否打印配置信息 | false |
printRuntimeLog | 是否打印运行时日志 | false |
请发表评论