您的位置 首页 java

连接池的作用及原理详解(附3大常见连接池)

连接池的作用及原理详解(附3大常见连接池)

Java 面试经常问到 连接池 ,今天就给大家分享连接池的作用及原理@mikechen

连接池的作用及原理详解(附3大常见连接池)

什么是连接池

连接池,英文名(Connection Pool),是创建和管理一个连接的缓冲池的技术。

连接池的作用

这里我就以数据库的连接池的来举例说明:

一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接。

创建和释放数据库连接是一个很耗时的操作,频繁地进行这样的操作将占用大量的性能开销,进而导致网站的响应速度下降,严重的时候可能导致服务器崩溃。

数据库连接池 的解决方案是在应用程序启动时建立足够的数据库连接,并将这些连接组成一个连接池。

简单说:在一个“池”里放了好多半成品的数据库联接对象,避免频繁的创建连接。

连接池的主要优点与作用体现如下三个方面:

连接池的作用及原理详解(附3大常见连接池)

第一、减少连接创建时间

连接池中的连接是已准备好的、可重复使用的,获取后可以直接访问数据库,因此减少了连接创建的次数和时间。

第二、简化的编程模式

当使用连接池时,每一个单独的 线程 能够像创建一个自己的 JDBC 连接一样操作,允许用户直接使用JDBC编程技术。

第三、控制资源的使用

如果不使用连接池,每次访问数据库都需要创建一个连接,这样系统的稳定性受系统连接需求影响很大,很容易产生资源浪费和高负载异常。

连接池能够使性能最大化,将资源利用控制在一定的水平之下。连接池能控制池中的连接数量,增强了系统在大量用户应用时的稳定性。

有哪些连接池?

常见的有数据库连接池、缓存连接池、服务连接池,如下图所示:

1.数据库连接池

连接池的作用及原理详解(附3大常见连接池)

2.缓存连接池

连接池的作用及原理详解(附3大常见连接池)

3.服务连接池

连接池的作用及原理详解(附3大常见连接池)

连接池的原理

连接池基本的思想是在系统初始化的时候,将数据库连接作为 对象存储 在内存中。

当用户需要访问数 据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象,使用完毕后是将连接放回连接池中,以供下一个请求访问使用。

而连接的建立、断开都由连 接池自身来管理,同时还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数 以及每个连接的最大使用次数、最大空闲时间等等,也可以通过其自身的管理机制来监视数据库连接的 数量、使用情况等。

连接池的作用及原理详解(附3大常见连接池)

数据库连接池的主要操作如下六个步骤:

(1)建立数据库连接池对象(服务器启动)。

(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。

(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果 数据库连接 池 对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。

(4)存取数据库。

(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。

(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。

以上!

架构技术●资料合集

1. 分布式架构 设计从0到1全部合集,强烈建议收藏!

2.Java多线与并发编程从0到1全部合集,强烈建议收藏!

3.JVM虚拟机系从0到1全部合集,强烈建议收藏!

4. Spring 系列从0到1全部合集,强烈建议收藏!

5.Java设计模式:23种设计模式(万字图文全面总结)

6.史上最强消息队列MQ万字图文总结,强烈建议收藏!

文章来源:智云一二三科技

文章标题:连接池的作用及原理详解(附3大常见连接池)

文章地址:https://www.zhihuclub.com/196543.shtml

关于作者: 智云科技

热门文章

网站地图