gpt4 book ai didi

jakarta-ee - Java EE : when Users exceed the number that defined in connection Pool

转载 作者:行者123 更新时间:2023-12-01 07:42:32 24 4
gpt4 key购买 nike

我正在开发一个基于 Java EE 的应用程序,使用 Tomcat 作为服务器,使用 MySQL 作为数据库。
我已经为 50 个用户配置了连接池。

现在我的问题是,如果在给定时间有 51 个用户(同时)访问该应用程序,那么第 51 个用户会发生什么情况? (因为该应用程序一次仅支持 50 个连接)

我的要求是,对于第 51 个用户,我需要显示类似“
请稍后再访问”。


这可能吗?

最佳答案

50 个连接池意味着从 WebApp 到数据库最多有 50 个连接,这并不意味着可以同时连接到您的应用程序的最大用户数。

即使有很多用户同时使用您的应用程序,也不意味着所有用户都将使用与数据库的连接(例如,空闲、查看静态页面、从缓存中获取数据等)。

您没有提到您使用的是什么连接池,但我假设您正在使用任何体面的库并适本地使用它,例如每次完成查询时调用 connection.close() 以将连接返回到池。

如果是这种情况,请不要担心,如果池已全部用完,则下一个用户将排队等待,直到一个连接返回到池中。

所以你可以添加一个超时来检测这个队列时间,例如如果在 5 到 10 秒内 DriverManager.getConnection() 没有返回,假设池已满并将用户重定向到带有该消息的静态页面。

请务必记录此事件,因此如果您知道大部分时间池何时已满,那么是时候增加最大连接数了。

关于jakarta-ee - Java EE : when Users exceed the number that defined in connection Pool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11012055/

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