假设 连接池配置这样子:initialSize=10,minIdle=10,maxActive=100。10个连接都被占用着,再次获取连接会获取多少个呢?
原提问者GitHub用户MnameHZJ
连接池在初始化连接被用完之后重新获取连接时,具体会获取多少个连接取决于连接池的配置和当前连接池状态。您可以通过设置连接池的"maxActive"参数来控制所允许的最大活动连接数。
在您提供的连接池配置中,"initialSize=10"表示连接池的初始化连接数为10,"minIdle=10"表示连接池的最小空闲连接数也为10,而"maxActive=100"则表示连接池所允许的最大活动连接数为100。
当连接池中的连接都被占用时,再次获取连接时将从连接池中获取新的连接,直到连接池中的连接数达到最大活动连接数为止。因此,在您的情况下,如果10个连接已经全部被占用,再次获取连接时会获取新的连接,直到连接池中的连接数达到100个。
请注意,根据实际使用情况,您可以根据系统负载和资源限制来调整连接池的配置参数,以平衡性能和资源消耗。合理设置最大活动连接数(maxActive)可以避免过多的连接占用系统资源,同时保证足够的连接供应满足请求。
连接池初始化连接被用完之后,重新获取连接,获取多少个连接取决于连接池配置和当前连接池状态。连接池可以配置最大连接数、最小连接数、空闲连接数等参数,这些参数将影响连接池的行为和性能。当连接池中的连接被用完之后,连接池将根据配置获取新的连接,以满足当前的请求。
连接池通常会维护一组空闲连接,以便可以在需要时立即提供连接。如果连接池中没有足够的空闲连接,则连接池将尝试创建新的连接,直到达到最大连接数。如果达到最大连接数后仍然无法满足请求,则连接池将返回错误或等待一段时间,以便其他连接可以释放并变为可用。
您可以通过配置连接池的参数来控制连接池的行为和性能。例如,您可以设置最大连接数、最小连接数、空闲连接数、连接超时时间、回收策略等参数,从而实现更好的性能和资源利用率。在Druid连接池中,一些常用的连接池配置参数包括:
initialSize:初始化连接数,默认值为0;
maxActive:最大连接数,默认值为8;
minIdle:最小空闲连接数,默认值为0;
maxIdle:最大空闲连接数,默认值为8;
maxWait:获取连接的最大等待时间(毫秒),默认值为-1(表示无限等待);
timeBetweenEvictionRunsMillis:连接回收时间间隔(毫秒),默认值为60,000;
minEvictableIdleTimeMillis:连接最小空闲时间(毫秒),默认值为30,000;
validationQuery:用于检测连接是否有效的SQL语句,例如SELECT 1;
testWhileIdle:是否在空闲时检测连接有效性,默认值为true;
testOnBorrow:是否在获取连接时检测连接有效性,默认值为false;
testOnReturn:是否在归还连接时检测连接有效性,默认值为false。
在Druid中,连接池的初始化连接数和最小空闲连接数是相等的,即initialSize和minIdle的值相等。因此,如果连接池的初始化连接数为10,那么最小空闲连接数也为10。
在这种情况下,当连接池中的连接都被占用时,再次获取连接时会从连接池中获取10个连接。如果连接池中的连接数已经达到了最大活动连接数(maxActive),那么再次获取连接时会从连接池中获取新的连接,直到连接池中的连接数达到最大活动连接数为止。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。