Web的Server PUSH架構將是未來主流

原文鏈接:Web的Server PUSH架構將是未來主流

第一代的Web技術,是基于HTML的靜態頁面,用于發布靜態的內容。程序員們就想出來通過程序來生成HTML的技術,將內容保存于數據庫中,然后通過SQl和模板引擎等技術去生成HTML頁面。

第二代的Web,開始大量使用前端程序,使用Ajax等方式動態主動觸發事件,從服務端拉取數據,并且增加了前端的程序邏輯。從而實現了Web頁面上的交互。

不過,隨著技術的發展,前兩種架構已經遠遠不能滿足信息交互需求了。通過采用Server PUSH的架構,服務器端可以主動向Web推送數據,從而達到實時交互,這一定會是未來的主流。比如A,B,C3人同時在一個頁面上瀏覽,A對B進行了評論,并且提到了C。傳統的架構,B,C將無法感知到,只有B,C再次拉取內容時,才會得到此信息。顯然B ,C錯過了與A交互的最佳時機,而且得知信息的時間延后了很多。

傳統的PULL模式,也可以通過定時輪詢的方式來嘗試拉取數據。但這種技術1是并不是實時的,信息還是需要到了一定時間間隔才可以得到。2,這種方式可能大部分請求是無效的,白白浪費了一次網絡請求。還造成了web Server的負載大大增高。

真正的PUSH技術目前有3種,WebSocket,目前還不夠成熟,而且IE瀏覽器或其他低版本瀏覽器不支持。Flash Socket,雖然可以實現,但需要依賴Flash第三方組件,而且可能會被防火墻或者其他安全策略攔截,實際效果不理想。XHR輪詢,這種方式目前是最成熟的解決方案,瀏覽器端開啟KeepAlive,Server使用epoll等異步IO方式,效率非常高,實測效果非常好。目前Facebook、人人網都使用此模式。

目前大部分PUSU架構,都是用Erlang、Node.js等語言去實現。但Web2.0時代,基本上大部分網站都用PHP來實現的。改用其他編程語言實現,與現有架構就會不兼容。PHP也有libevent的Server實現方式,不過存在各種問題,并不好用。

Swoole通過C寫了內置Server,并作為PHP擴展,提供了非常好的可編程性。Server本身的實現也非常高效,采用了多線程Epoll,全異步驅動,讀寫分離的方式。可以很好的利用到多核。

https://github.com/matyhtf/php_swoole

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,264評論 25 708
  • 就我個人的經驗而言,這時代最大的變化之一,是漂泊遷徙成為了常態。我的父輩基本上一輩子囚禁在了那一小塊土地上,一輩子...
    蔡德林閱讀 2,267評論 0 14
  • 嘿,你好! 現在2016年12月,我是三年前的你。我用差不多一個月的時間給三年后的你寫封信吧~那時候你應該24歲了...
    HakunaMatataz閱讀 282評論 0 0
  • 月光淳伊閱讀 280評論 0 2