Java 连接池的工作原理
我正在开发基于spring的应用程序,其中我管理连接池,以管理MySQL和Java应用程序之间的连接 连接池配置如下所示:Java 连接池的工作原理,java,mysql,spring,Java,Mysql,Spring,我正在开发基于spring的应用程序,其中我管理连接池,以管理MySQL和Java应用程序之间的连接 连接池配置如下所示: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" > <property name="driverClassName" value="${database.driver}" /> <property name="url" va
<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个请求,那么maxactive的最佳值是什么?1)MySQL不知道您的连接池。MySQL有自己的最大允许连接选项。并且该数目应该大于所有连接池所需的连接数之和。你的情况是2*100
2) 最佳maxactive值取决于多个因素。每秒500个请求如果处理一个请求,则每秒需要500个连接。但如果请求处理时间为0.1秒,50个连接就足够了