我正在开发基于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个请求,那么最佳的最大值是什么?
答案 0 :(得分:1)
1)MySQL并不了解您的连接池。 MySQL拥有最大允许连接的选项。并且该数字应该大于所有连接池所需的连接总和。所以在你的情况下2 * 100。
2)最佳最大值取决于多种因素。如果处理一个请求,则每秒500次请求1秒需要500个连接。但如果请求处理时间为0.1秒,则50个连接就足够了。