开发者社区> 问答> 正文

连接池初始化连接被用完之后,重新获取连接,会获取多少个呢?设置哪个配置项可以控制呢?

假设 连接池配置这样子:initialSize=10,minIdle=10,maxActive=100。10个连接都被占用着,再次获取连接会获取多少个呢?

原提问者GitHub用户MnameHZJ

展开
收起
山海行 2023-07-05 20:47:01 68 0
4 条回答
写回答
取消 提交回答
  • 连接池在初始化连接被用完之后重新获取连接时,具体会获取多少个连接取决于连接池的配置和当前连接池状态。您可以通过设置连接池的"maxActive"参数来控制所允许的最大活动连接数。

    在您提供的连接池配置中,"initialSize=10"表示连接池的初始化连接数为10,"minIdle=10"表示连接池的最小空闲连接数也为10,而"maxActive=100"则表示连接池所允许的最大活动连接数为100。

    当连接池中的连接都被占用时,再次获取连接时将从连接池中获取新的连接,直到连接池中的连接数达到最大活动连接数为止。因此,在您的情况下,如果10个连接已经全部被占用,再次获取连接时会获取新的连接,直到连接池中的连接数达到100个。

    请注意,根据实际使用情况,您可以根据系统负载和资源限制来调整连接池的配置参数,以平衡性能和资源消耗。合理设置最大活动连接数(maxActive)可以避免过多的连接占用系统资源,同时保证足够的连接供应满足请求。

    2023-07-30 14:35:10
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    连接池初始化连接被用完之后,重新获取连接,获取多少个连接取决于连接池配置和当前连接池状态。连接池可以配置最大连接数、最小连接数、空闲连接数等参数,这些参数将影响连接池的行为和性能。当连接池中的连接被用完之后,连接池将根据配置获取新的连接,以满足当前的请求。

    连接池通常会维护一组空闲连接,以便可以在需要时立即提供连接。如果连接池中没有足够的空闲连接,则连接池将尝试创建新的连接,直到达到最大连接数。如果达到最大连接数后仍然无法满足请求,则连接池将返回错误或等待一段时间,以便其他连接可以释放并变为可用。

    您可以通过配置连接池的参数来控制连接池的行为和性能。例如,您可以设置最大连接数、最小连接数、空闲连接数、连接超时时间、回收策略等参数,从而实现更好的性能和资源利用率。在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。

    2023-07-30 13:26:22
    赞同 展开评论 打赏
  • 在Druid中,连接池的初始化连接数和最小空闲连接数是相等的,即initialSize和minIdle的值相等。因此,如果连接池的初始化连接数为10,那么最小空闲连接数也为10。
    在这种情况下,当连接池中的连接都被占用时,再次获取连接时会从连接池中获取10个连接。如果连接池中的连接数已经达到了最大活动连接数(maxActive),那么再次获取连接时会从连接池中获取新的连接,直到连接池中的连接数达到最大活动连接数为止。

    2023-07-11 10:22:21
    赞同 展开评论 打赏
  • 申请一个加一个

    原回答者GitHub用户wenshao

    2023-07-06 11:45:36
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载