我正在构建一个内部调用其他服务的 REST 服务,我们使用 org.apache.cxf.jaxrs.client.WebClient 来执行此操作。
我想使用 HTTP 连接池来提高性能,但文档不是很清楚如何做到这一点,或者这是否可能。这里有人做过吗?
我能想到的唯一其他选择是重用客户端,但我宁愿不涉及该方法带来的所有线程安全和同步问题。
我正在构建一个内部调用其他服务的 REST 服务,我们使用 org.apache.cxf.jaxrs.client.WebClient 来执行此操作。
我想使用 HTTP 连接池来提高性能,但文档不是很清楚如何做到这一点,或者这是否可能。这里有人做过吗?
我能想到的唯一其他选择是重用客户端,但我宁愿不涉及该方法带来的所有线程安全和同步问题。
默认情况下,CXF 使用基于 JDK 中的 HttpURLConnection 对象的传输来执行 HTTP 请求。
执行连接池允许持久连接为多个 http 请求重用底层套接字连接。
设置系统属性(默认值)
http.keepalive=true
http.maxConnections=5
增加 http.maxConnections 的值以设置每个目标同时保持活动的最大空闲连接数。
在这篇文章中详细解释了它是如何工作的
当您需要同时执行多个请求时,CXF 也可以使用异步 apache HttpAsyncClient。此处提供服务详情
http://cxf.apache.org/docs/asynchronous-client-http-transport.html