连接池的工作原理

时间:2014-11-26 05:12:17

标签: java mysql spring

我正在开发基于spring的应用程序,我在其中管理连接池以管理MySQL和Java应用程序之间的连接。

连接池配置如下所示:

<bean id="dataSource"
     class="org.apache.commons.dbcp.BasicDataSource" >
     <property name="driverClassName" value="${database.driver}" />
     <property name="url" value="${database.url}" />
     <property name="username" value="${database.user}" />
     <property name="password" value="${database.password}" />
     <property name="initialSize" value="20" />
     <property name="maxActive" value="100" />
     <property name="maxIdle" value="50" />
     <property name="minIdle" value="10" />
</bean>

现在我的问题是:

1)我有两个不同的应用程序具有相同的配置,然后mysql将维护多少连接池,它将为所有具有maxactive1 = 100的应用程序,或者它将基于每个应用程序。在我的情况下2 * 100 = 200(maxactive)。

2)如果我在1秒内有500个请求,那么最佳的最大值是什么?

1 个答案:

答案 0 :(得分:1)

1)MySQL并不了解您的连接池。 MySQL拥有最大允许连接的选项。并且该数字应该大于所有连接池所需的连接总和。所以在你的情况下2 * 100。

2)最佳最大值取决于多种因素。如果处理一个请求,则每秒500次请求1秒需要500个连接。但如果请求处理时间为0.1秒,则50个连接就足够了。