到底什麼是長輪詢?

是什麼

就是請求不立馬斷開,而是保活一段時間。超時以後,斷開,而後客戶端再次和服務器創建鏈接。服務器

http請求是請求/響應,完成以後,立馬斷開。spa

因此,長輪詢的意思就是,長的意思,是保活長鏈接,即通常是很短的一段時間內(好比1m)不斷開,在這1m時間內,服務器若是有新數據就主動寫到客戶端。輪詢的意思是,1m以後,鏈接斷開,客戶端再次和服務器創建鏈接,也就是屢次不停地創建1m的鏈接。中間件

應用場景

apollo
rem

有了1m的長鏈接,爲何還要5m一次的短鏈接,防止1m長鏈接的期間,服務器push功能失效,至關因而一個備用機制。it


rocketmqclass

也是同樣,客戶端和服務器創建長鏈接(也是短期內的保活長鏈接),在每次的長鏈接期間,服務器若是有數據就主動寫數據到客戶端。集羣


總結請求

除了長輪詢機制同樣,還有註冊中心也是同樣,apollo和rocketmq都使用了註冊中心,其實全部的中間件基本上都是這樣,若是要集羣(通常多主多從),就要搞註冊中心。im

好處

push模型的好處是實時寫新的數據到客戶端。pull模型的好處是請求/響應模式,完成以後就斷開,而不是像push模型同樣,一直長鏈接不斷開,若是每一個鏈接都不斷開,那麼服務器鏈接數量很快會被耗盡。總結

長輪詢的好處是,既有push模型的服務器實時寫數據到客戶端,又有pull模型的避免一直長鏈接。

相關文章
相關標籤/搜索