我正在使用HttpClient 3.1連接到不同的Web服務。我已將SO_TIMEOUT和ConnectionTimeout設置爲3秒。我正在模擬一個需要超過3秒鐘響應的服務。但是,實際的超時時間要長得多,達到幾分鐘甚至更長時間。最後,服務器內存不足,失速。HttpClient超時緩慢壓力
這是怎麼回事?爲什麼我的連接不及時超時?
我正在使用HttpClient 3.1連接到不同的Web服務。我已將SO_TIMEOUT和ConnectionTimeout設置爲3秒。我正在模擬一個需要超過3秒鐘響應的服務。但是,實際的超時時間要長得多,達到幾分鐘甚至更長時間。最後,服務器內存不足,失速。HttpClient超時緩慢壓力
這是怎麼回事?爲什麼我的連接不及時超時?
Wel,這是「初級」。我們並沒有使用MultiThreadedHttpConnectionManager,所以所有的請求都被序列化了......
僅當HTTP連接處於非活動狀態時,纔會啓動SO_TIMEOUT。你確定,你的連接閒置?或者你的服務器發送任何分塊響應?
我已經放置了Thread.sleep() – Dan 2010-11-02 00:14:09
看來我一直在單線程模式下使用HttpClient。在我更改了代碼以使用MultiThreadedHttpConnectionManager並增加了連接數後,它開始按照它應有的工作。之前,它似乎是序列化呼叫。 – Dan 2010-11-02 00:16:04