链接池的意义及阿里Druid

经常使用的主流开源数据库链接池有C3P0、DBCP、Tomcat Jdbc Pool、BoneCP、Druid等git

C3p0: 开源的JDBC链接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。单线程,性能较差,适用于小型系统,代码600KB左右。github

DBCP (Database Connection Pool):由Apache开发的一个Java数据库链接池项目, Jakarta commons-pool对象池机制,Tomcat使用的链接池组件就是DBCP。单独使用dbcp须要3个包:common-dbcp.jar,common-pool.jar,common-collections.jar,预先将数据库链接放在内存中,应用程序须要创建数据库链接时直接到链接池中申请一个就行,用完再放回。单线程,并发量低,性能很差,适用于小型系统。数据库

Tomcat Jdbc Pool:Tomcat在7.0之前都是使用common-dbcp作为链接池组件,可是dbcp是单线程,为保证线程安全会锁整个链接池,性能较差,dbcp有超过60个类,也相对复杂。Tomcat从7.0开始引入了新增链接池模块叫作Tomcat jdbc pool,基于Tomcat JULI,使用Tomcat日志框架,彻底兼容dbcp,经过异步方式获取链接,支持高并发应用环境,超级简单核心文件只有8个,支持JMX,支持XA Connection。安全

BoneCP:官方说法BoneCP是一个高效、免费、开源的Java数据库链接池实现库。设计初衷就是为了提升数据库链接池性能,根据某些测试数据显示,BoneCP的速度是最快的,要比当时第二快速的链接池快25倍左右,完美集成到一些持久化产品如Hibernate和DataNucleus中。BoneCP特点:高度可扩展,快速;链接状态切换的回调机制;容许直接访问链接;自动化重置能力;JMX支持;懒加载能力;支持XML和属性文件配置方式;较好的Java代码组织,100%单元测试分支代码覆盖率;代码40KB左右。并发

Druid:Druid是Java语言中最好的数据库链接池,Druid可以提供强大的监控和扩展功能,是一个可用于大数据实时查询和分析的高容错、高性能的开源分布式系统,尤为是当发生代码部署、机器故障以及其余产品系统遇到宕机等状况时,Druid仍可以保持100%正常运行。主要特点:为分析监控设计;快速的交互式查询;高可用;可扩展;Druid是一个开源项目,源码托管在github上。https://blog.csdn.net/weinichendian/article/details/78503469框架

相关文章
相关标签/搜索