Web組件分離

   Web組件: 指Web服務器提供的所有基於URL訪問的資源,保羅動態內容、圖片、腳本、CSS等。
    Web組件分離的目的: 採用針對性的方法,使得各種Web組件能夠充分有效地利用服務器資源,達到符合各自實際情況的吞吐率最大化。
    如何分離:
     (1)將Web組件分別獨立部署,可位於不同的物理服務器或同一個物理服務器不同邏輯單元中,同時將不同的域名指向不同的Web組件服務器。不必購買新的主域名,只需使用站點現有主域名的二級域名。

以下是新浪網上的組件分離策略(採用二級域名重寫URL)
        <!-- optimization begin -->
        <script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"></script>
        <script type="text/javascript" src="http://news.sina.com.cn/js/213/20091202/34/head.js"></script>
        <script type="text/javascript" src="http://news.sina.com.cn/pfpnews/js/libweb.js"></script>
        <!-- optimization end -->
    對於站點中多個二級域名需要使用cookie時,就需要爲一些比較獨立的組件啓用新的頂級域名,這樣來自原有主站點的cookie不會再主動上報。
    文件在服務器間遷移(文件分發和同步,分佈式文件系統)
    瀏覽器的併發數:
    瀏覽器的最大併發數對於同一個域名下的組件是有限制的,用不同的域名對Web組件進行分離後,可以提高瀏覽器下載Web組件的併發數。
    HttpWatch可以用來檢測瀏覽器請求。在線測試工具http://site-perf.com

    靜態網頁:
    不需要動態腳本解釋器參與,需要全身心地進行IO操作,屬於IO密集型應用。靜態內容的吞吐率很大程度上取決於服務器的併發處理能力。
    提高處理靜態網頁時的吞吐率的措施: 支持epoll,非阻塞IO和異步IO,使用sendfile()系統調用,使用高速磁盤等。
        Epoll可以使Web服務器在大量併發用戶數的情況下保持較穩定的吞吐率。
        非阻塞IO能避免不必要的IO等待。
        Sendfile()能避免文件系統磁盤緩衝區到用戶地址空間的數據複製,從而優化IO。
    Http持久連接可以大大提高圖片服務器的吞吐率。

發佈了29 篇原創文章 · 獲贊 3 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章