通過負載均衡實現應用伺服器伸縮性
1、 http重定向負載均衡
利用http重定向協議實現負載均衡。如下圖所示:
http重定向負載均衡原理
http重定向伺服器是一台普通的應用伺服器,其唯一的功能就是根據使用者的http請求計算一台真實的web伺服器位址,並將該web伺服器位址寫入http重定向響應中(響應狀態碼302)返回給使用者瀏覽器。
缺點:1、瀏覽器需要兩次請求伺服器才能完成一次訪問,效能較差
2、重定向伺服器自身的處理能力有可能成為瓶頸,整個集群的伸縮性規模有限
3、使用http302響應碼重定向,有可能使搜尋引擎判斷為seo作弊,降低搜尋排名
2、dns網域名稱解析負載均衡
這是利用dns處理網域名稱解析請求的同時進行負載均衡處理的一種方案,如下圖所示:
dns網域名稱解析負載均衡原理
在dns伺服器中配置多個a記錄,如:
www.mysite.com in a 114.100.80.1
www.mysite.com in a 114.100.80.2
www.mysite.com in a 114.100.80.3
每次網域名稱解析請求都會根據負載均衡演算法計算乙個不同的ip位址返回,這樣a記錄中配置的多個伺服器就構成乙個集群,並可以實現負載均衡。上圖中的瀏覽器請求解析網域名稱www.mysite.com,dns根據a記錄和負載均衡演算法計算得到乙個ip位址114.100.80.3,並返回給瀏覽器;瀏覽器根據該ip位址,訪問真是物理伺服器114.100.80.3。
優點:將負載均衡的工作轉交給dns,省掉了**管理維護負載均衡伺服器的麻煩,同時許多dns還支援基於地理位置的網域名稱解析,即會將網域名稱解析成距離使用者地理位置最近的乙個伺服器位址,這樣可加快使用者訪問速度,改善效能。
缺點:目前的dns是多級解析,每一級dns都可能快取a記錄,當下線某台伺服器後,即使修改了dns的a記錄,要使其生效也需要較長的時間,這段時間,dns依然會將網域名稱解析到已經下線的伺服器,導致使用者訪問失敗;而且dns負載均衡的控制權在網域名稱服務商那裡,**無法對其做更多改善和更強大的管理
大型**總是部分使用dns網域名稱解析,利用網域名稱解析作為第一級負載均衡手段,即網域名稱解析得到的一組伺服器並不是實際提供web服務的物理伺服器,而是同樣提供負載均衡的內部伺服器,這組內部負載均衡伺服器再進行負載均衡,將請求分發到真實的web伺服器上。
3、反向**負載均衡(由於反向**伺服器**請求在http協議層面,因此也叫應用層負載均衡)
利用反向**伺服器進行負載均衡,如下圖:
反向**負載均衡原理
前面我們提到利用反向**快取資源,以改善**的效能。實際上,在部署位置上,反向**伺服器處於web伺服器前面(這樣才可能快取web響應,加速訪問),這個位置正好是負載均衡伺服器的位置,所以大多數反向**伺服器同時提供負載均衡的功能,管理一組web伺服器,將請求根據負載均衡演算法**到不同的web伺服器上。web伺服器處理完成的響應也需要通過反向**伺服器返回給使用者。由於web伺服器不直接對外提供訪問,因此web伺服器不需要使用外部 ip位址,而反向**伺服器則需要配置雙網絡卡和內部外部兩套ip位址。
上圖中,瀏覽器訪問清酒的位址是反省**伺服器的位址114.100.80.10,反向**伺服器收到請求後,根據負載均衡演算法計算得到一台真實物理伺服器的位址10.0.0.3,並將請求**給伺服器。10.0.0.3處理完請求後將響應返回給反向**伺服器,反向**伺服器再將該響應返回給使用者。
優點:和反向**伺服器功能整合在一起,部署簡單
缺點:反向**伺服器是所有請求和響應的中轉站,其效能可能會成為瓶頸
4、ip負載均衡
ip負載均衡原理
真實物理web伺服器響應資料報返回給 負載均衡伺服器方案:
1:負載均衡伺服器在修改目的的ip位址的同時修改源位址,將資料源位址設為自身ip,即源位址轉換(snat),這樣web伺服器的響應會再回到負載均衡伺服器
2:將負載均衡伺服器同時作為物理伺服器集群的閘道器伺服器,這樣所有響應資料都會到達負載均衡伺服器
5、資料鏈路層負載均衡
顧名思義,資料鏈路層負載均衡是指在通訊協議的資料 鏈路層修改mac位址進行負載均衡,如下圖所示:
6、負載均衡演算法
負載均衡伺服器的實現可以分為兩個部分:
前面描述了如何將請求資料傳送到web伺服器,二具體的負載均衡演算法通常有以下幾種
輪詢(round robin,rr)
所有請求被一次分發到每台應用伺服器上,即每台伺服器需要處理的請求數目都相同,適合於素有伺服器硬體都相同的場景。
加權輪詢(weighted round robin,wrr)
根據應用伺服器硬體效能的 情況,在 輪詢的基礎上,按照配置的權重將請求分發到每個伺服器,高效能的伺服器能分配更多請求。
隨機(random)
請求被隨機分配到各個應用伺服器,在 許多場合下,這種方案都很簡單實用,因為好的隨機數本身就很均衡。即使應用伺服器硬體配置不同,也可以使用加權隨機演算法。
最少連線(least connections)
記錄每個應用伺服器正在處理額連線數(請求數),將新到的請求分發到最少連線的伺服器上,應該說,這是最符合負載均衡定義的演算法。同樣,最少連線演算法也可以實現加權最少連線。
源位址雜湊(source hashing)
根據請求**的ip位址進行hash計算,得到應用伺服器,這樣來自同乙個ip位址的請求總在同乙個伺服器上處理,該請求的上下文資訊可以儲存在這台伺服器上,在乙個會話週期內重複使用,從而實現會話黏滯。
DNS負載均衡 Nginx 負載均衡的種類
dns負載均衡 當乙個 有足夠多的使用者的時候,假如每次請求的資源都位於同一臺機器上面,那麼這台機器隨時可能會蹦掉。處理辦法就是用dns負載均衡技術,它的原理是在dns伺服器中為同乙個主機名配置多個ip位址,在應答dns查詢時,dns伺服器對每個查詢將以dns檔案中主機記錄的ip位址按順序返回不同的...
負載均衡技術
基本概念 反向 反向 reverse proxy 方式是指以 伺服器來接受internet上的連線請求,然後將請求 給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時 伺服器對外就表現為乙個伺服器。cdn的全稱是content delivery networ...
常用負載均衡技術
基於四層交換技術的負載均衡 基於四層交換技術的負載均衡 這種技術是在第四層交換機上設定web服務的虛擬ip位址,這個虛擬ip位址是dns伺服器中解析到的web伺服器的ip位址,對客戶端是可見的。當客戶訪問此web應用時,客戶端的http請求會先被第四層交換機接收到,它將基於第四層交換技術實時檢測後台...