簡體   English   中英

Open Liberty 上的 MicroProfile Rest 客戶端 jaxrs 連接池配置

[英]MicroProfile Rest client jaxrs connection pool configuration on Open Liberty

我正在實施基於 MicroProfile Rest 客戶端規范的 rest 客戶端並部署在 Open Liberty 22.0.0.9 上。

在對 JMeter 進行了幾次性能測試后,似乎 rest 客戶端的連接池只有 10 個。

我該如何更改它,因為它確實不足以滿足我們的使用需求?

看起來底層客戶端實現仍然是cxf(org.apache.cxf.microprofile.client.CxfTypeSafeClientBuilder)。 在此頁面https://openliberty.io/docs/latest/reference/jaxrs-dif.html上聲明“Open Liberty 的底層 JAX-RS 實現也從 Apache CXF 更改為 RESTEasy。” jaxrs 2.0 和 2.1 的實現是否也已切換到 Resteasy 還是僅適用於 restfulWS-3.0?

無論如何,要更改 cxf 的配置,我嘗試添加 jvm.options 屬性“-Dhttp.maxConnections=100”,但它沒有效果。

我還設置了一個 RestClientBuilderListener,但我沒有找到任何可在 RestClientBuilder 上設置的工作屬性...

知道我如何實現這一目標嗎?

對於mpRestClient-2.0

如果同步使用,則底層 CXF 使用 JDK 的 HttpURLConnection。 默認情況下,啟用並使用 HTTP Keep-Alive,除非服務器響應“連接:關閉”響應 header。如果沒有,則每個目標主機的緩存保持連接的最大數量由-Dhttp.maxConnections=X (默認 5)。 如果服務器響應“Keep-Alive:timeout=X”響應 header,則 KeepAliveCache 將在大約 X 秒空閑后清除並關閉連接。 如果服務器沒有響應這樣的header,默認是5秒,不能調。

如果異步使用,則底層 CXF 使用 Apache HttpClient,並且可以使用client.setProperty調用調整 HttpClient,例如

  • org.apache.cxf.transport.http.async.MAX_CONNECTIONS
  • org.apache.cxf.transport.http.async.MAX_PER_HOST_CONNECTIONS
  • org.apache.cxf.transport.http.async.CONNECTION_TTL
  • org.apache.cxf.transport.http.async.CONNECTION_MAX_IDLE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM