小编mr.*_*don的帖子

Spring WS和MultiThreadedHttpConnectionManager

我在Spring WS 2.1.0上有一个Web服务.Web服务在Tomcat 7上运行,并使用一种事务方法实现端点,该方法从数据库读取数据并生成不同的报告.Tomcat 7通过JServ协议在Apache Server后面运行.

在通过Apache JMeter进行压力测试期间,我得出结论,同时处理请求是串行处理的.起初我试图调整数据库连接池(commons-dbcp和更高版本的tomcat-jdbc),但结果是一样的.端点方法只读取数据,因此没有读后读或写后读依赖,并且可以并行处理事务.因此问题在于HTTP连接处理.

经过一些搜索(当然还有谷歌搜索),我发现Spring WS附带了单线程的默认连接管理器(SimpleHttpConnectionManager).好的做法是用MultiThreadedHttpConnectionManager替换SimpleHttpConnectionManager.我找到了如下所示的示例代码:

<bean id="httpClient" class="org.apache.commons.httpclient.HttpClient">
    <constructor-arg>
        <bean class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager>
            <property name="maxConnectionsPerHost" value="20"/>
            <property name="maxTotalConnections" value="100"/>
        </bean>
    </constructor-arg>
</bean>
Run Code Online (Sandbox Code Playgroud)

但是这个例子对我来说并不是很清楚,因为我不明白Spring如何使用HttpClient(指代ID或自动装配它).那我怎么能在我的案例中使用MultiThreadedHttpConnectionManager和Spring?我应该在哪里注入此类的已配置实例?

java spring multithreading httpconnection tomcat7

1
推荐指数
1
解决办法
5463
查看次数

标签 统计

httpconnection ×1

java ×1

multithreading ×1

spring ×1

tomcat7 ×1