gpt4 book ai didi

mysql - 连接池是在单个服务器(使用 MySQL)上运行多个应用程序实例的最佳方式吗?

转载 作者:行者123 更新时间:2023-11-28 23:52:58 25 4
gpt4 key购买 nike

我想用 mysql 5.1 社区版(在 win server 2008 x64 上)配置 tomcat 服务器,以便在一台机器上运行一个大项目。我有一个 gwt 应用程序,我需要在单个 HP 服务器上运行它的 300 多个实例。

每个实例使用一个单独的 MySQL 数据库(db1 到 db300),因此需要一个单独的连接池,这是我的 db1 连接池配置的一部分(类似于其他数据库):

<Resource name="jdbc/mysql/db1" auth="Container" type="javax.sql.DataSource" initialSize="5" maxActive="100" maxIdle="20" maxWait="30000" removeAbandoned="true" removeAbandonedTimeout="5" validationQuery="select now();" .../>

对于 300 个实例,事件连接数将为 300*100 = 30000 个事件连接!

现在我想知道是否可以在一台服务器上打开如此大量的连接到 300 个 MySQL 数据库。

如果不是,那么解决方案是什么?如果是,那么将使用多少资源(RAM 和 CPU)?

连接池是最好的方式还是有其他方式?

如果连接池是最佳选择,那么我的资源部分创建池的最佳设置是什么?

最佳答案

如果 300 个实例中的每一个都需要一次使用 100 个,则事件连接数将仅为 30000。如果他们空闲,他们只会根据您的配置使用 1500(来自 initialSize)和 6000(来自 maxIdle)之间的某处。您可能希望降低这些值以处理 300 个实例。也许 initialSize="2"maxActive="10"maxIdle="5" 就足够了吗?

如果您真的希望所有实例都使用那么多连接,那么一台服务器可能是不够的。不过,几乎不可能说出您需要多少 RAM 或 CPU,这实际上取决于您正在做什么以及您期望有多少事件。

关于mysql - 连接池是在单个服务器(使用 MySQL)上运行多个应用程序实例的最佳方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5623187/

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