连接池

本文介绍了连接池的作用,即提高性能,省略创建和销毁连接过程。阐述其基本原理,包括服务启动创建连接池、按参数创建初始连接等。列举了数据库、HTTP Client等连接池种类,还提出连接池内连接超时而断开的问题,并给出解决办法。

作用

提高性能,将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对Server端进行访问。这样省略了创建连接和销毁连接的过程(TCP连接建立时的三次握手和销毁连接时的四次握手)

基本原理

服务启动时建立连接池对象。按照事先指定的参数创建初始数量的连接(即:空闲连接数)。对于一个访问请求,直接从连接池中得到一个连接。如果连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的连接;如果达到最大,则设定一定的超时时间,来获取连接。运用连接访问服务。访问服务完成,释放连接(此时的释放连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。释放连接池对象(服务停止、维护期间,释放连接池对象,并释放所有连接)。

种类

  • 数据库连接池
  • HTTP Client连接池
  • Thrift连接池
  • 插入Rabbitmq队列的连接池

问题

  1. 如果连接池内的连接长时间没有使用,超过了数据库的最大超时时间,导致数据库主动断开了连接,这时,连接池如何保证这些断开的连接依然可用?
    可以在每次用户申请连接时,先探测这个分配的连接是否可用,若不可用,从连接池里剔除,选择一个可用的连接

参考

  1. 谈谈数据库连接池的原理
  2. 数据库连接池的实现及原理

转载于:https://www.cnblogs.com/shengulong/p/11180324.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值