CXF 在不改变 http.maxConnections 的情况下增加连接池大小
Posted
技术标签:
【中文标题】CXF 在不改变 http.maxConnections 的情况下增加连接池大小【英文标题】:CXF increase connection pool size without changing http.maxConnections 【发布时间】:2012-03-28 16:39:26 【问题描述】:最近有人要求我将 CXF 配置为与我们的旧 XFire 服务相同的参数。
其中一个参数是Keep-Alive: timeout=60, max=20
。
但是,我做了一些研究,似乎 CXF 在后台使用了 JVM HttpURLConnection
对象。 From what I see,已尝试为其提供配置,但目前尚未提交任何内容。
我不希望更改 http.maxConnections
参数,因为它会影响所有服务器,而不仅仅是 CXF Web 服务。
我发现这个 interresting forum thread 在 Daniel Kulp 所说的地方谈论它:
顺便说一句:有一种方法可以控制连接池,但它是 服务器端的东西。基本上,如果服务器发回一个标头:
Keep-Alive: timeout=60, max=5
那么 Java 客户端将尊重这些值。现在在CXF, 您可能需要编写一个拦截器来设置这些值。 我刚刚提交了将 http 配置扩展到 在配置文件中包含一个设置来控制它。
我可以编写一个拦截器来修改标题来做到这一点。但是我的问题是:服务器将如何应对这种变化?如果服务器期望最多 5 个连接并且客户端执行更多,这不是问题吗?
【问题讨论】:
【参考方案1】:根据我读到的here,keep-alive 参数可以通过系统属性或直接在 HTTP 标头中进行控制:
对 HTTP keep-Alive 的支持是透明的。然而,它可以 由系统属性控制 http.keepAlive,并且 http.maxConnections,以及由HTTP/1.1指定的请求和 响应标头。
【讨论】:
以上是关于CXF 在不改变 http.maxConnections 的情况下增加连接池大小的主要内容,如果未能解决你的问题,请参考以下文章
Apache Cxf Wsdl2java创建Web服务客户端编码错误
C# - 如何在不改变 DateTime 格式的情况下改变文化
在不改变系统音量的情况下改变 MPMusicPlayerController 的音量