mysql(六)数据库连接池
什么是数据库连接池
数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放
数据库连接池的运行机制
(1) 程序初始化时创建连接池
(2) 使用时向连接池申请可用连接
(3) 使用完毕,将连接返还给连接池
(4) 程序退出时,断开所有连接,并释放资源
开源数据库连接池
1 dbcp
dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池
这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性
有所下降,此外不提供连接池监控
2 c3p0
c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。
这个连接池的配置参见附件压缩包中的:c3p0.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,
此外不提供连接池监控。
3 proxool
proxool这个连接池可能用到的人比较少,但也有一定知名度,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有
这个连接池的配置参见附件压缩包中的:proxool.xml。
使用评价:在具体项目应用中,发现此连接池的持续运行的稳定性有一定问题,有一个需要长时间跑批的任务场景任务,同样的代码
在另外2个开源连接池中成功结束,但在proxool中出现异常退出
但是proxool有一个优势--连接池监控
4 Druid
阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好
商业中间件连接池
1 weblogic的连接池
使用评价:在具体项目应用中,此连接池的持续运行的稳定性很强,在大并发量的压力下性能也相当优秀,另外在一些异常情况下连接池里的连接也能够及时释放。
连接池监控一目了然,及时到位。
2 websphere的连接池
还是先来段题外话:记得有人说过,websphere只有版本6以后才算是websphere,个人很赞同。websphere 5以及以前的版本。。。还是忘了吧。
其实websphere的连接池秉承ibm一贯的风格:功能强大,使用复杂:)
使用评价:在具体项目应用中,此连接池的持续运行的稳定性相当强,在大并发量的压力下性能也足够优秀,另外在一些异常情况下连接池里的连接能够及时释放,
连接池监控配置有些复杂,但是配置好后各项指标一目了然并且有图形显示