加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

jdbc连接池分析

发布时间:2020-12-14 06:37:02 所属栏目:Java 来源:网络整理
导读:这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【jdbc连接池分析 】 视频链接: PPT链接: https://ptteng.gith

这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【jdbc连接池分析 】

视频链接:

PPT链接:

https://ptteng.github.io/PPT/PPT-java/JAVA-task1-jdbcpool.html#/


1.背景介绍

使用jdbc的时候,每操作一次都需要获取连接(创建)用完之后把连接释放掉了(销毁),通过连接池来优化curd操作。

连接池就像一个大池子一旦初始化就放入很多很多的链接,用的时候你来这个大池子里取,用完之后你再归还给我。这个就是我们的连接池。

每一次web请求都要建立一次数据库连接。

比如双十一的时候我每次只创建一个链接,好几亿人剁手,那服务器可能一定会崩掉。

所以这就体现了连接池的必要性,就是在连接池初始化的时候存入一定数量的连接,用的时候通过方法获取,不用的时候归还连接即可

2.知识剖析

1、并发问题

为了使连接管理服务具有最大的通用性,必须考虑多线程环境

2、多数据库服务器和多用户?对于大型的企业级应用,常常需要同时连接不同的数据库(如连接oracle和sybase)。设计一个符合单例模式的连接池管理类,在连接池管理类的唯一实例被创建时读取一个资源文件,其中资源文件中存放着多个数据库的url地址等信息。根据资源文件提供的信息,创建多个连接池类的实例,每一个实例都是一个特定数据库的连接池。连接池管理类实例为每个连接池实例取一个名字,通过不同的名字来管理不同的连接池。

3,连接池的分配与释放

连接池的分配与释放,对系统的性能有很大的影响。合理的分配与释放,可以提高连接的复用度,从而降低建立新连接的开销,同时还可以加快用户的访问速度。

4,连接池的配置与维护

连接池中到底应该放置多少连接,才能使系统的性能最佳?系统可采取设置最小连接数(minconn)和最大连接数(maxconn)来控制连接池中的连接。最小连接数是系统启动时连接池所创建的连接数。如果创建过多,则系统启动就慢,但创建后系统的响应速度会很快


3.常见问题


4.解决方案

实际开发中有成熟的开源连接池供我们使用

DBCP(tomcat使用)

dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。

这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml

一般情况下。在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性有所下降,此外不提供连接池监控

C3P0(一定要懂!)(spring和hibernate)

c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。

这个连接池的配置参见附件压缩包中的:c3p0.xml。

一般情况下。在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,此外不提供连接池监控。


5.编码实战

jdbc连接池分析_腾讯视频

实际开发中有成熟的开源连接池供我们使用

DBCP(tomcat使用)

dbcp可能是使用最多的开源连接池,原因大概是因为配置方便,而且很多开源和tomcat应用例子都是使用的这个连接池吧。

这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。这个连接池的配置参见附件压缩包中的:dbcp.xml

一般情况下。在具体项目应用中,发现此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性有所下降,此外不提供连接池监控

C3P0(一定要懂!)(spring和hibernate)

c3p0是另外一个开源的连接池,在业界也是比较有名的,这个连接池可以设置最大和最小连接,连接等待时间等,基本功能都有。

这个连接池的配置参见附件压缩包中的:c3p0.xml。

一般情况下。在具体项目应用中,发现此连接池的持续运行的稳定性相当不错,在大并发量的压力下稳定性也有一定保证,此外不提供连接池监控。

6,扩展思考

第三种连接池Druid

阿里出品,淘宝和支付宝专用数据库连接池,

但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,

一系列内置的JDBC组件库,一个SQL Parser。支持所有JDBC兼容的数据库,

包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。

7,问题思考

提问:连接池是否会自动关闭?

答案是需要设置的。比如我们的DBCP的连接池图中

图中便是对连接池关闭的设置。

8,参考文献

http://blog.csdn.net/shuaihj/article/details/14223015

9,更多讨论

视频链接:

https://v.qq.com/x/page/d0567vhdanq.html

PPT链接: https://ptteng.github.io/PPT/PPT-java/JAVA-task1-jdbcpool.html#/8


今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

我的邀请码:,或者你可以直接点击此链接:

作者:MIND_4a7b 链接:https://www.jianshu.com/p/beceba363798 來源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

更多内容,可以加入IT交流群565734203与大家一起讨论交流

这里是技能树·IT修真院:,初学者转行到互联网的聚集地

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读