1

我在我的系统中使用 c3P0。我有与根据请求数量更改池大小相关的设计问题。

我们有基于多租户的应用程序,其中每个租户的数据库是分开的。我们使用 hibernate 进行持久化,使用 c3p0 进行连接池。每个租户的连接池是不同的。

现在,每个租户的连接池大小是静态的,并在配置中定义。但是当 1-2 个租户的负载增加时,我们需要为这些租户提供更多的数据库连接,而无需增加其他租户的池大小。

我们想要的是为这些租户动态增加连接池大小,并从其他负载较低的租户的连接池中关闭未使用的连接。

我正在考虑使用 maxIdleTime 进行连接。但是因为我对 MySql 的连接总数有限制,所以我需要一种更主动的方法,以便增加高负载连接池并减少低负载池并关闭未使用的连接。

4

1 回答 1

0

在你的 c3p0 配置中使用高 maxPoolSize 会起作用吗?c3p0 会根据需要自动“调整”池大小。(如果您希望它们快速向下弯曲,请查看 maxIdleTimeExcessConnections。如果您想避免超时,请设置 maxIdleTime 或 maxConnectionAge)

请参阅:c3p0 的 文档,尤其是 配置属性

于 2012-09-15T17:27:02.697 回答