Tomcat 连接池的 maxActive 与 maxIdle 有什么区别?

2024-01-14

tomcat 连接池有一个名为 maxActive 的设置和一个名为 maxIdle 的设置,我的问题是。

  1. 这两种设置有什么区别?
  2. 在现实世界中,maxActive 值可能与 maxIdle 值不同的示例场景是什么?

由于某种原因,这些文档对我来说没有意义。根据以下文档,maxActive 和 maxIdle 都存在于 apache dbcp 和 tomact 7 jdbc-pool 上http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

maxActive (int) 最大活动连接数 同时从该池中分配。默认值为 100

maxIdle (int) 应保留的最大连接数 任何时候都在泳池里。默认值为 maxActive:100 Idle 定期检查连接(如果启用)并且连接 空闲时间超过 minEvictableIdleTimeMillis 将被释放。 (另请参阅 testWhileIdle)


maxActive 很简单。 maxIdle 可以这样解释 - 假设您有 100 个最大活动连接,并将 maxIdle 设置为 80。假设没有请求发送到数据库,则只有 80 个连接将被测试(通过验证查询)并将保持活动状态。另外 20 个将被关闭。所以在任何时候你只能有 80 个空闲连接。
您可能希望将其设置为不同的数字,以防止额外的(不必要的)连接到数据库。因为数据库提供的每个连接都会消耗资源(如内存)。
但是,假设您已将 maxActive 大小设置为 100,并且所有 100 个几乎一直在使用,则此设置显然无关紧要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat 连接池的 maxActive 与 maxIdle 有什么区别? 的相关文章

随机推荐