gpt4 book ai didi

apache - Tomcat - 在 Http 连接器中配置 maxThreads 和 acceptCount

转载 作者:行者123 更新时间:2023-11-28 21:46:42 25 4
gpt4 key购买 nike

我目前有一个使用 Tomcat 部署的应用程序,它通过 JDBC 与 Postgres 数据库交互。查询非常昂贵,所以我看到的是由 Tomcat 或 Apache 引起的超时(在我的配置中,Apache 位于 Tomcat 的前面)。我正在尝试将与数据库的连接限制为 20-30 个并发连接,以免数据库不堪重负。我使用\.. 配置完成了此操作,将 maxActive 设置为 30,将 maxIdle 设置为 20。我还提高了 maxWait。

在这种情况下,我限制了数据库的使用,但我希望连接/请求在 Tomcat 中被合并。 Apache 可以同时接受 250 个请求。所以我需要确保 Tomcat 也可以接受这么多,但要适本地处理它们。

Tomcat 在HTTP 连接器 配置文件中有两个设置:

  • ma​​xThreads -“Http 连接器创建的请求处理线程的最大数量,因此决定了可以处理的同时请求的最大数量。”
  • acceptCount - “当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度。当队列已满时收到的任何请求都将被拒绝。”

所以我猜测如果我将 maxThreads 设置为最大 JDBC 连接数 (30),那么我可以将 acceptCount 设置为 250-30 = 220。

我不太明白在 JDBC 连接上等待从池中打开的线程与排队的线程之间的区别......我的想法是排队的线程消耗更少的周期而正在运行的线程,在 JDBC 池上等待,将花费周期检查池中是否有空闲线程...?

最佳答案

请注意,HTTP 连接器用于传入的 HTTP 请求,与 JDBC 无关。您可能希望单独配置 JDBC 连接池,例如 JDBC 连接器的 connectionProperties: http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html

关于apache - Tomcat - 在 Http 连接器中配置 maxThreads 和 acceptCount,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8153727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com