为了账号安全,请及时绑定邮箱和手机立即绑定

弹簧连接池在物理级别如何工作?

弹簧连接池在物理级别如何工作?

DIEA 2021-04-08 18:15:01
例如,我有一个设置:spring.datasource.maxActive=5这是否意味着在Spring启动之后,已在池中创建了5个活动的物理连接?还是只是对象?在访问池之后,将创建与数据库的物理连接吗?如果所有5个连接都忙,则连接池是否会创建新连接并将其放入池中?中间地带在哪里?如何计算游泳池的数量?
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

每个连接池对连接的管理方式都不同。他们有不同的策略来扩展池或引发没有可用连接的异常。

通常(但不是规则):

  1. 当Spring启动时,没有活动的连接。

  2. 是的,第一次访问该池时将创建第一个物理连接。使用后,它将以空闲状态停留在池中。

  3. 只要有空闲连接,池就会重用它们。空闲连接将重新用于新请求。

  4. 如果请求到来且没有空闲连接且已达到最大限制,则有两种策略:无限增长池或引发异常。抛出异常是处理这种情况的常用方法。当前由活动连接处理的请求将不受影响。

  5. 空闲连接可以在一段时间后被销毁,以避免占用资源。

了解适当的池大小是统计信息和可用资源的问题。同样,可以根据使用模式和服务器上的连接可用性来增加或减小最大池大小。


查看完整回答
反对 回复 2021-04-21
  • 2 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号