所在位置:首頁 -- 軟件設計 -- 正文

大型網站--負載均衡架構


發布時間:2013-11-20  來源:admin

負載均衡 (Load Balancing) 負載均衡建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。

大型網站負載均衡的利器

全局負載均衡系統(GSLB)

內容緩存系統(CDN)

服務器負載均衡系統(SLB)

DNS域名解析的基本過程

最初的負載均衡解決方案(DNS輪詢)

優點

基本上無成本,因為往往域名注冊商的這種解析都是免費的;

部署方便,除了網絡拓撲的簡單擴增,新增的Web服務器只要增加一個公網IP即可

缺點

健康檢查,如果某臺服務器宕機,DNS服務器是無法知曉的,仍舊會將訪問分配到此服務器。修改DNS記錄全部生效起碼要3-4小時,甚至更久;

分配不均,如果幾臺Web服務器之間的配置不同,能夠承受的壓力也就不同,但是DNS解析分配的訪問卻是均勻分配的。用戶群的分配不均衡導致DNS解析的不均衡。

會話保持,如果是需要身份驗證的網站,在不修改軟件構架的情況下,這點是比較致命的,因為DNS解析無法將驗證用戶的訪問持久分配到同一服務器。雖然有一定的本地DNS緩存,但是很難保證在用戶訪問期間,本地DNS不過期,而重新查詢服務器并指向新的服務器,那么原服務器保存的用戶信息是無法被帶到新服務器的,而且可能要求被重新認證身份,來回切換時間長了各臺服務器都保存有用戶不同的信息,對服務器資源也是一種浪費。

全局負載均衡系統(GSLB)

優勢

1.數據中心冗余備份

2.多站點流量優化

3.確保用戶體驗

全局負載均衡系統(GSLB)的原理

DNS檢查工具網上有很多,感興趣的可以搜索一下。

內容緩存系統(CDN)

1.內容緩存系統(CDN)之靜態加速

2.內容緩存系統(CDN)之動態加速

動態加速的特點

1.智能路由

2.傳輸控制協議(TCP)優化

3.HTTP預載

服務器負載均衡系統

應用背景

1.訪問流量快速增長

2.業務量不斷提高

用戶需求

1.希望獲得7×24的不間斷可用性及較快的系統反應時間

負載均衡必須滿足性能、擴展、可靠性

服務器負載均衡系統三種接入方式

部署方式 特點 優點 缺點
串聯路由模式 比較常見的部署方式

負載均衡設備將服務器有效隔離,安全考慮上最好

服務器網關指向負載均衡設備, 功能實現更簡單,有利于最大化負載均衡性能

服務器可以直接接收到真實訪問源客戶IP地址
 

對現有拓撲結構變動較大

需要考慮內網服務器是否有對外訪問需求,必要時需要設置靜態NAT轉換
 

單臂模式 最常見的部署方式

部署方便,對現有拓撲結構變動小

和應用無關的流量不會通過負載均衡設備

內部應用無影響,外部應用通常需要前端防火墻做NAT映射到應用VIP
 

服務器不能直接接收訪問客戶源地址,需要對應用做修改后才可以通過其他方式獲得真實訪問地址

DSR

服務器回程報文不通過負載均衡設備,直接返回給客戶端;

延遲短,適合流媒體等對延時要求較高應用
 

性能高,可處理吞吐量高

服務器可以直接接收到真實訪問源客戶IP地址
 

只能做4層的負載均衡,基于7層的服務無法實現優化(例如壓縮等)無法使用

需要在服務器上配置loopback地址
 

服務器負載均衡系統的常見調度算法

1.輪詢(Round Robin)

2.加權輪詢(Weighted Round Robin)

3.最少連接(Least Connections)

4.加權最少連接(Weighted Least Connections)

健康性檢查

健康性檢查算法的目的:通過某種探針機制,檢查服務器群中真實服務器的健康情況,避免把客戶端的請求分發給出現故障的服務器,以提高業務的HA能力。

目前常用的健康性檢查算法:

Ping(ICMP)

TCP

HTTP

FTP

系統加速

優化功能-SSL加速

優化功能-HTTP壓縮

HTTP壓縮是在Web服務器和瀏覽器間傳輸壓縮文本內容的方法。F5 HTTP壓縮技術通過具有智能壓縮能力的 BIG-IP 系統可縮短應用交付時間并優化帶寬。HTTP壓縮采用通用的壓縮算法壓縮HTML、JavaScript或CSS文件。壓縮的最大好處就是降低了網絡傳輸的數據量,從而提高客戶端瀏覽器的訪問速度。

優化功能-連接復用

優化功能-TCP緩存

會話保持

會話保持-客戶端源IP會話保持

源IP地址會話保持就是將同一個源IP地址的連接或者請求認為是同一個用戶,根據會話保持策略,在會話保持有效期內,將這些發自同一個源IP地址的連接/請求都轉發到同一臺服務器。

會話保持-Cookie會話保持

當采用基于源地址的會話保持無法做到負載均分時,例如客戶端發起連接請求的源IP地址相對固定,發生此類問題通常可采用基于應用層的會話保持方式,Cookie通常是存在于HTTP頭中,現如今基于HTTP的應用被廣泛使用,因此基于Cookie的會話保持越來越多的出現在服務器負載均衡解決方案中。

局限性:

對于非HTTP協議,或者客戶端禁用Cookie,無效。

會話保持-URL哈希(Hash)會話保持

哈希會話保持的一個基本概念就是按照某個Hash因子,根據此因子以及后臺存在多少臺服務器計算得到的結果來選擇將請求分配到那臺服務器。哈希會話保持的特點是在后臺服務器的健康狀態不發生改變的時候,每個特定的Hash因子被分配到的服務器是固定的。其最大的優勢是哈希會話保持可以沒有會話保持表,而僅僅是根據計算的結果來確定被分配到那臺服務器,尤其在一些會話保持表查詢的開銷已經遠遠大于Hash計算開銷的情況下,采用Hash會話保持可以提高系統的處理能力和響應速度。

URL哈希會話保持通常針對后臺采用Cache服務器的應用場景,針對URL進行Hash計算,將同一個URL的請求分配到同一臺Cache服務器,這樣,對后臺的Cache服務器群來說,每臺Cache服務器上存放的內容都是不一樣的,提高Cache服務器的利用率。

故障案例分析

Q&A案例分析(1)-循環跳轉

故障現象:

Web服務端對用戶訪問的URL進行判斷,對于非https的請求,重定向到http站點,結果導致用戶一直302跳轉。

原因分析:

采用了負載均衡SSL加速功能,在服務端看到所有的用戶請求都來自于http。

解決方案:

全站啟用SSL加速。

Q&A案例分析(2)-用戶Session丟失

故障現象:

用戶在http站點上提交數據到同域名的https站點,web程序拋出session丟失的異常,用戶提交數據失敗。

原因分析:

http和https在負載均衡設備上被認為是2個獨立的服務,產生2個獨立的TCP鏈接,會命中不同的真實服務器,導致session丟失。

解決方案:

在負載均衡設備上啟用基于真實服務器的會話保持。

Q&A案例分析(3)-客戶端源IP取不到

故障現象:

服務端獲取不到用戶外網的IP地址,看到的都是大量來自于內網特定網段的IP地址。

原因分析:

負載均衡設備啟用了用戶源地址轉換(SNAT)模式,修改了TCP報文中的用戶源IP。

解決方案:

負載均衡設備會用用戶的外網IP改寫x-forwarded-for值,服務端通過獲取http協議中request header頭的x-forwarded-for值作為用戶源IP。IIS日志通過安裝插件形式顯示用戶源IP。

服務器負載均衡設備選型

1.價格因素

硬件設備:F5、 Citrix 、Redware 、A10

軟件:LVS、Nginx、Haproxy、zen loadbalance

2.性能

4/7層吞吐量(單位bps)

4/7層新建連接數(單位CPS)

并發連接數

功能模塊性能指標(ssl加速、 HTTP壓縮、內存Cache)

3.滿足真實和未來需求

1)如果確認負載均衡設備對所有應用的處理都是最簡單的4層處理,那么理論上選擇的負載均衡設備的4層性能稍高于實際性能需求即可。

2)如果確認負載均衡設備對所有應用的處理都是簡單的7層處理,那么理論上選擇的負載均衡設備的7層性能稍高于實際性能需求即可。

3)如果負載均衡設備處理的應用既有4層的也有7層的,建議按照7層應用的性能來考慮負載均衡設備。

4)如果確認自己的應用經過負載均衡處理時,需要復雜的4層或者7層處理,例如需要根據客戶端的地址做策略性分發,需要根據tcp的內容做處理,需要根據HTTP頭或者HTTP報文做處理,那么建議選擇的負載均衡設備4/7層性能為真實性能需求的兩倍。

5)如果負載均衡設備有混合的復雜流量處理并且還開啟了一些功能模塊,那么建議選擇的負載均衡設備4/7層性能為真實性能需求的3倍。

6)考慮到設備需要輕載運行才能更加穩定,所以有可能的話在以上基礎上再增加30%的性能。

7)如果還要滿足未來幾年的發展需求,在以上基礎上還要留出未來發展所需要增加的性能。

8)不同負載均衡設備廠家由于不同的架構,使得某些設備在復雜環境下可能也表現的比較優秀,這個客戶可以對比判斷,但總體來說,以上建議適合于所有廠家的設備。

 

中国比特币暴涨 快乐赛车开奖计划 时时彩开奖软件 分分彩开奖号码一样 江苏快三官网下载 王中王高手论坛香港资料大全 北京时时几号开奖结果 浙江快乐12开奖结果一定牛走势图 360重庆老时时票 中彩网 广东快乐10分开奖直播 三分赛结果 九龙高手最快开奖结果 三地开奖走势 赛車pk10网站 广西快三走势图爱彩乐 北京pk计划软件三码