如何在cxf jaxrs webclient中使用连接池

时间:2016-06-25 05:44:07

标签: web-services rest cxf connection-pooling cxf-client

我正在构建一个内部调用其他服务的REST服务,我们使用org.apache.cxf.jaxrs.client.WebClient来执行此操作。

我想使用HTTP连接池来提高性能,但文档不清楚如何执行此操作,或者甚至可能。这里有人这样做过吗?

我能想到的唯一其他选择是重用客户端,但我宁愿不介入该方法带来的整套线程安全和同步问题。

1 个答案:

答案 0 :(得分:2)

默认情况下,CXF使用基于in-JDK HttpURLConnection对象的传输来执行HTTP请求。

执行连接池,允许持久连接为多个http请求重用底层套接字连接。

设置系统属性(默认值)

 http.keepalive=true
 http.maxConnections=5

增加http.maxConnections的值,以设置每个目标将同时保持活动状态的最大空闲连接数。

在这篇文章中详细解释了它的工作原理

Java HttpURLConnection and pooling

当您需要同时执行多个请求时,CXF也可以使用异步apache HttpAsyncClient。这里有详细信息

http://cxf.apache.org/docs/asynchronous-client-http-transport.html