1. 程式人生 > >負載均衡之HTTP重定向

負載均衡之HTTP重定向

過程 web服務 使用 網絡設備 能夠 增加 和數 重定向 流量

轉載請說明出處:http://blog.csdn.net/cywosp/article/details/38014581

由於目前現有網絡的各個核心部分隨著業務量的提高,訪問量和數據流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的服務器設備根本無法承擔。在此情況下,如果扔掉現有設備去做大量的硬件升級,這樣將造成現有資源的浪費,而且如果再面臨下一次業務量的提升時,這又將導致再一次硬件升級的高額成本投入,甚至性能再卓越的設備也不能滿足當前業務量增長的需求。 針對此情況而衍生出來的一種廉價有效透明的方法以擴展現有網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性的技術就是負載均衡(Load Balance)。 一個能夠提供高並發訪問,快速響應的服務器集群不是一開始就能設計出來的,但對於軟件架構師而言,在架構設計之初就要有應付這種高並發,為集群提供水平擴展的計劃,具體何時進行擴展,就需要在後續處理業務的過程中慢慢演化了。同時,在設計之初,為了能快速擴展而不影響集群的正常使用,建議把服務器設計成無狀態的,也就是集群服務器不存儲請求上下文信息,這樣用戶的請求被發往集群中的任何一個節點所處理的返回結果都將是一樣的。因此在集群中就可以使用負載均衡技術將不同的請求發往不同的節點上進行處理。如下圖: 技術分享
負載均衡服務器需要能夠感知或者可以配置集群中的服務器數量,可以及時發現集群中新上線或者下線的服務器,並能向新上線的服務器分發請求,停止向已下線的服務器分發請求,這樣就實現了服務器集群的伸縮性。負載均衡的實現技術有多種多樣,從硬件實現到軟件實現,從商業產品到開源產品,應有盡有。本文主要介紹Web服務器中HTTP反向代理機制,以此來達到服務器之間的負載均衡。 利用HTTP重定向協議實現負載均衡大概工作原理如下圖: 技術分享 HTTP重定向服務器是一臺普通的應用服務器,其唯一個功能就是根據用戶的HTTP請求計算出一臺真實的服務器地址,並將該服務器地址寫入HTTP重定向響應中(重定向響應狀態碼為302)返回給用戶瀏覽器。用戶瀏覽器在獲取到響應之後,根據返回的信息,重新發送一個請求到真實的服務器上。如上圖所示,瀏覽器訪問www.apusapp.com,DNS服務器解析到IP地址為114.100.20.200,即HTTP重定向服務器的IP地址。重定向服務器計根據某種負載均衡算法算出真實的服務器地址為114.100.20.203並返回給用戶瀏覽器,用戶瀏覽器得到返回後重新對114.100.20.203發起了請求,最後完成訪問。 這種負載均衡方案的有點是比較簡單,缺點是瀏覽器需要兩次請求服務器才能完成一次訪問,性能較差;同時,重定向服務器本身的處理能力有可能成為瓶頸,整個集群的伸縮性規模有限;使用HTTP返回碼302重定向,有可能使搜索引擎判斷為SEO作弊,降低搜索排名。因此實踐中很少使用這種負載均衡方案來部署。

負載均衡之HTTP重定向