負載均衡 負載均衡是部署有相同應用的伺服器組成的一個集群,每次用戶請求都可以發送到集群中任意一臺伺服器上去處理,任何一臺伺服器處理結果都是相同的。 負載均衡伺服器是一個HTTP請求分發裝置,能感知或配置集群的伺服器數量,及時發現集群中上線、下線的伺服器,並將請求分發到上線的伺服器。 實現負載均衡有5 ...
負載均衡
負載均衡是部署有相同應用的伺服器組成的一個集群,每次用戶請求都可以發送到集群中任意一臺伺服器上去處理,任何一臺伺服器處理結果都是相同的。
負載均衡伺服器是一個HTTP請求分發裝置,能感知或配置集群的伺服器數量,及時發現集群中上線、下線的伺服器,並將請求分發到上線的伺服器。
實現負載均衡有5種方式:
1、HTTP重定向負載均衡
2、DNS功能變數名稱解析負載均衡
3、反向代理負載均衡
4、IP負載均衡
5、數據鏈路層負載均衡
HTTP重定向負載均衡
利用HTTP重定向協議實現負載均衡。
優點
1、簡單。
缺點
1、需要請求兩次伺服器才能完成一次訪問,性能較差。
2、HTTP302響應碼重定向,可能會被搜索引擎判斷為SEO作弊。
3、無法保證用戶一直從主頁進入站點,可能用戶已收藏一個具體地址,這樣調度就會被跳過。
DNS功能變數名稱解析負載均衡
利用DNS處理功能變數名稱解析請求的同時進行負載均衡處理的一種方案。
優點
1、省掉了網站管理維護負載均衡伺服器。
2、為用戶選擇最近的伺服器,提高訪問速度。
缺點
1、DNS緩存,修改DNS可能會較長時間才生效。
2、控制權在功能變數名稱服務商那裡,網站能做的有限。
PS:大網站還是會使用DNS功能變數名稱解析,作為第一級負載均衡。
反向代理負載均衡
利用反向代理伺服器進行負載均衡。反向代理伺服器核心工作是轉發HTTP請求,它工作在HTTP層面,也就是TCP七層結構中的應用層(第七層),所以反向代理負載均衡也稱為七層負載均衡。
優點
1、簡單。
缺點
1、反向代理伺服器作為請求中轉站,性能可能會成瓶頸。
IP負載均衡
通過在網路層(第三層)修改請求目標地址進行負載均衡。
優點
1、IP負載均衡在內核進程完成數據分發,較反向代理負載均衡性能更優。
缺點
1、由於請求響應都需要經過負載均衡伺服器,集群的最大響應數據吞吐量受制於負載均衡伺服器的網卡帶寬。
數據鏈路層負載均衡
在數據鏈路層(第二層)修改mac地址進行負載均衡。這種數據傳輸方式響應不再需要通過負載均衡伺服器,而是直接響應給用戶,避免負載均衡伺服器網卡帶寬成為瓶頸,這種負載均衡方式又稱為直接路由方式(DR)。
PS:三角傳輸模式的鏈路層負載均衡是目前大型網站使用最廣的一種負載均衡手段。
負載均衡演算法
負載均衡伺服器尋找一臺可用伺服器的演算法有:
1、輪詢(Round Robin, RR)
2、加權輪詢(Weighted Round Robin, WRR)
3、隨機
4、最少連接
5、源地址散列(Source Hashing)
參考文獻
1、《構建高性能Web站點》
2、《大型網站技術架構》