已迁移整个实现以使用apache HTTP客户端,因为它具有特殊的API,可以实现更好的控制。但这没有帮助。即使使用Apache HTTP客户端,我也可以看到这些等待的连接线程。
最终在redhat网站上找到有关JBOSS HTTP连接器配置的提示。为HTTP连接器配置了线程池,它解决了该问题:
<subsystem xmlns="urn:jboss:domain:threads:1.1">
<thread-factory name="http-connector-factory" group-name="uq-thread-pool" thread-name-pattern="HTTP-%t" priority="9"/>
<unbounded-queue-thread-pool name="uq-thread-pool">
<max-threads count="5"/>
<keepalive-time time="5" unit="seconds"/>
<thread-factory name="http-connector-factory"/>
</unbounded-queue-thread-pool>
</subsystem>
<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="false">
<connector name="http" protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="http" socket-binding="http" executor="uq-thread-pool"/>
....
....