我有一些麻煩與HTTP組件的右側設置。目前微服務從提供商處提取JSON內容,對其進行處理並將其發送到下一個服務以供進一步處理。主要問題是這個微服務創建了大量的CLOSE_WAIT套接字連接。我瞭解,「KEEP-ALIVE」的整個概念應保持連接處於打開狀態,直到我關閉它爲止,但服務器可能會由於某些原因而斷開連接並創建此CLOSE_WAIT套接字。無法配置「保活」駱駝HTTP組件
我創建了一個小型服務用於調試/測試目的,使一個GET調用谷歌,但即使這樣連接保持打開狀態,直到我關閉程序。我已經嘗試了許多不同的解決方案:
- .setHeader( 「連線」,常數( 「關閉」))
- -Dhttp.keepAlive = false作爲VM參數
- 從駱駝-HTTP切換到駱駝-Http4
- httpClient.soTimeout = 500(駱駝-HTTP),httpClient.socketTimeout = 500和connectionTimeToLive = 500(駱駝HTTP4)
- .setHeader( 「連接」,簡單( 「保持活動」))和 .setHeader( 「保持活動」,簡單( 「超時= 10」))(駱駝HTTP4)
- 通過調試DefaultConnectionKeepAliveStrategy從-1(永不結束)到Camel-HTTP4中的特定值的響應來設置 - 可以工作,但我無法注入我自己的策略。
,但我沒有成功。所以也許你們中的一個人可以幫我:
- 我該如何告訴Camel-HTTP它應該在特定的時間通過時關閉連接?例如,該服務每隔一小時從內容提供者處抽取。 3-4小時後,HttpComponent應該在拉動之後關閉連接,並在下一次拉動時重新打開連接。目前,每個連接都將被放回到MultiThreadedHttpConnectionManager中,並且套接字仍處於打開狀態。
- 如果這是不可能做到這一點與駱駝HTTP:我怎麼能注入HttpClientBuilder到我的路線的創作?我知道它應該可以通過httpClient選項,但我不明白文檔的特定部分。
謝謝大家的幫助