互連網架構設計中的poll和push

來源:互聯網
上載者:User

poll方式
poll方式,也稱為輪詢,是大家都比較熟悉的一種資料同步方式,用戶端定期去ping查詢服務器,確定是否有需要的資料。例如,軟體更新模組,用戶端軟體需要定期去查詢官方網站,判斷當前是否有更新的版本,如果有就提醒使用者進行升級。郵件用戶端,需要定期查詢郵件伺服器,查詢是否有新的郵件。RSS閱讀器,也是需要不斷的查詢rss地址的狀態,如果有更新,就將資料拿回來。

當伺服器沒有資料的時候,poll方式會浪費大量的頻寬。 為了降低頻寬,通常是採用減低poll的頻率來實現的,這就導致了訊息的長延遲,即時性不高。像gmail的POP3郵件檢查間隔從10分鐘到1小時不等。

push方式
poll的問題在於很多情況下,通訊通道是單向的。為瞭解決poll的問題,可以將通訊通道設計為雙向的,這樣就可以伺服器採用push的方式主動向用戶端進行資料同步了。雙向通訊通道設計,考慮到要穿透NAT和防火牆,很多實現採用長串連。例如各種IM的實現:MSN是TCP的長串連,QQ是UDP模仿的長串連,GTALK是HTTP模仿的長連結。

push方式,伺服器主動向用戶端推送資料。當前實現push方式有兩種方法:
1. 用戶端首先串連到伺服器,並維持長串連
2. 伺服器能夠直接存取到用戶端,不需要長串連
在國內NAT和firewall遍地都是的情況下,第2種方法不是很可行,但是對於一些公司專屬應用程式,這種方法還是不錯的,比如後面提到的pubsubhubbub。

但是push方式,通常需要長串連,對於伺服器端其實也是一個不小的壓力,雖然現在C10K問題得到了比較好的解決,但是對於一些大規模互連網應用來講,使用者數是數以億計的,單單是維持TCP串連,就需要太多的伺服器。因此,除了一些即時性要求比較高的應用,現在push方式使用的範圍還不是很廣,例如push方式在IM、伺服器監控等領域都有應用。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.