項目使用的是Torando
框架,請求第三方應用,用的是 AsyncHttpClient
。 昨天有個需求是在項目直接進行http請求數據,可是http須要長鏈接,因爲 AsyncHttpClient
不支持使用長鏈接,根據官方文檔,換成了 CurlAsyncHTTPClient
, 這個能夠知足需求。以後,在運行過程當中發現,相對於替換以前,請求時間增長了 40ms, 查了一下,發現是因爲 TCP
的 設置致使的 github.com/tornadoweb/…git
在TCP請求中,若是每次生成一點數據都要推送,就會致使傳輸不少包,下降了整體的傳輸效率,致使網絡擁塞。所以,有大神提出了Nagle's算法: 一般會在TCP程序裏,在未確認數據發送的時候讓發送器把數據送到緩存裏。任何數據隨後繼續直到獲得明顯的數據確認或者直到攢到了必定數量的數據了再發包。github
TCP_NODELAY
選項設置爲 1.參考文檔: en.wikipedia.org/wiki/Nagle'…web