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

慕标5832272
TA贡献1966条经验 获得超4个赞
每个连接池对连接的管理方式都不同。他们有不同的策略来扩展池或引发没有可用连接的异常。
通常(但不是规则):
当Spring启动时,没有活动的连接。
是的,第一次访问该池时将创建第一个物理连接。使用后,它将以空闲状态停留在池中。
只要有空闲连接,池就会重用它们。空闲连接将重新用于新请求。
如果请求到来且没有空闲连接且已达到最大限制,则有两种策略:无限增长池或引发异常。抛出异常是处理这种情况的常用方法。当前由活动连接处理的请求将不受影响。
空闲连接可以在一段时间后被销毁,以避免占用资源。
了解适当的池大小是统计信息和可用资源的问题。同样,可以根据使用模式和服务器上的连接可用性来增加或减小最大池大小。
添加回答
举报
0/150
提交
取消