常用負載均衡技術

2021-06-02 02:52:31 字數 3908 閱讀 5505

基於四層交換技術的負載均衡:

基於四層交換技術的負載均衡 ---- 這種技術是在第四層交換機上設定web服務的虛擬ip位址,這個虛擬ip位址是dns伺服器中解析到的web伺服器的ip位址,對客戶端是可見的。

當客戶訪問此web應用時,客戶端的http請求會先被第四層交換機接收到,它將基於第四層交換技術實時檢測後台web伺服器的負載,根據設定的演算法進行快速交換。常見的演算法有輪詢、加權、最少連線、隨機和響應時間等。

基於七層交換技術的負載均衡:

dns負載均衡:

dns負載均衡技術是最早的負載均衡解決方案,它是通過dns服務中的隨機名字解析來實現的,在dns伺服器中,可以為多個不同的位址配置同乙個名字,而最終查詢這個名字的客戶機將在解析這個名字時得到其中的乙個位址。因此,對於同乙個名字,不同的客戶機會得到不同的位址,它們也就訪問不同位址上的web 伺服器,從而達到負載均衡的目的。

這種技術的優點是,實現簡單、實施容易、成本低、適用於大多數tcp/ip應用;但是,其缺點也非常明顯,

首先這種方案不是真正意義上的負載均衡,dns 伺服器將http請求平均地分配到後台的web伺服器上,而不考慮每個web伺服器當前的負載情況;如果後台的web伺服器的配置和處理能力不同,最慢的 web伺服器將成為系統的瓶頸,處理能力強的伺服器不能充分發揮作用;

其次未考慮容錯,如果後台的某台web伺服器出現故障,dns伺服器仍然會把dns 請求分配到這台故障伺服器上,導致不能響應客戶端。

最後一點是致命的,有可能造成相當一部分客戶不能享受web服務,並且由於dns快取的原因,所造成的後果要持續相當長一段時間(一般dns的重新整理周期約為幾十分鐘甚至更長)。

反向**負載均衡:

使用**伺服器可以將請求**給內部的web伺服器。比如apache,nginx,squid等伺服器均支援反向**。

但是,對於連線請求數量非常大的時候,**伺服器的負載也會非常之大,在最後反向**伺服器會成為服務的瓶頸。

f5:

f5 big-ip ltm 的官方名稱叫做本地流量管理器,可以做4-7層負載均衡,具有負載均衡、應用交換、會話交換、狀態監控、智慧型網路位址轉換、通用持續性、響應錯誤處理、ipv6閘道器、高階路由、智慧型埠映象、ssl加速、智慧型http壓縮、tcp優化、第7層速率整形、內容緩衝、內容轉換、連線加速、快取記憶體、cookie加密、選擇性內容加密、應用攻擊過濾、拒絕服務(dos)攻擊和syn flood保護、防火牆---包過濾、包消毒等功能。

f5 big-ip用作http負載均衡器的主要功能:  

① f5 big-ip提供12種靈活的演算法將所有流量均衡的分配到各個伺服器,而面對使用者,只是一台虛擬伺服器。  

② f5 big-ip可以確認應用程式能否對請求返回對應的資料。假如f5 big-ip後面的某一台伺服器發生服務停止、宕機等故障,f5會檢查出來並將該伺服器標識為宕機,從而不將使用者的訪問請求傳送到該台發生故障的伺服器上。這樣,只要其它的伺服器正常,使用者的訪問就不會受到影響。宕機一旦修復,f5 big-ip就會自動查證應用已能對客戶請求作出正確響應並恢復向該伺服器傳送。

③ f5 big-ip具有動態session的會話保持功能。

④ f5 big-ip的irules功能可以做http內容過濾,根據不同的網域名稱、url,將訪問請求傳送到不同的伺服器。

lvs:

lvs是linux virtual server的簡寫,意即linux虛擬伺服器,是乙個虛擬的伺服器集群系統。

本專案在2023年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。目前有三種ip負載均衡技術(vs/nat、vs/tun和vs/dr);

支援十種排程演算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

三種負載均衡技術介紹如下:

1.virtual server via network address translation(vs/nat)

通過網路位址轉換,排程器重寫請求報文的目標位址,根據預設的排程演算法,將請求分派給後端的真實伺服器;真實伺服器的響應報文通過排程器時,報文的源位址被重寫,再返回給客戶,完成整個負載排程過程。

2.virtual server via ip tunneling(vs/tun)

採用nat技術時,由於請求和響應報文都必須經過排程器位址重寫,當客戶請求越來越多時,排程器的處理能力將成為瓶頸。

為了解決這個問題,排程器把請求報文通過ip隧道**至真實伺服器,而真實伺服器將響應直接返回給客戶,所以排程器只處理請求報文。

由於一般網路服務應答比請求報文大許多,採用 vs/tun技術後,集群系統的最大吞吐量可以提高10倍。

3.virtual server via direct routing(vs/dr)

vs/dr通過改寫請求報文的mac位址,將請求傳送到真實伺服器,而真實伺服器將響應直接返回給客戶。同vs/tun技術一樣,vs/dr技術可極大地提高集群系統的伸縮性。

這種方法沒有ip隧道的開銷,對集群中的真實伺服器也沒有必須支援ip隧道協議的要求,但是要求排程器與真實伺服器都有一塊網絡卡連在同一物理網段上。

分類         vs/nat     vs/tun     vs/dr

伺服器作業系統    任意      支援隧道       多數(支援non-arp )

伺服器網路      私有網路    區域網/廣域網    區域網

伺服器數目(100m網路)   10-20   100        多(100)

伺服器閘道器      負載均衡器   自己的路由      自己的路由

效率         一般      高          最高

haproxy:

haproxy提供高可用性、負載均衡 以及基於tcp和http應用的**,它是免費、快速並且可靠的一種解決方案。

haproxy特別適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。

haproxy執行在當前的硬體上,完全可以支援數以萬計的併發連線。並且它的執行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web伺服器不被暴露到網路上。

優點:支援session保持,同時支援通過獲取指定的url來檢測後端伺服器的狀態。支援tcp模式的負載均衡。比如可以給mysql的從伺服器集群和郵件伺服器做負載均衡。

缺點: 不支援虛擬主機。

nginx負載均衡

優點:效能好,可以負載超過2萬的併發。

功能多,除了負 載均衡,還能作web伺服器,而且可以通過geo模組來實現流量分配。

社群活躍,第三方補丁和模組很多。

支援gzip proxy。

缺點:

不支援session保持。

對後端realserver的健康檢查功能效果不好。而且只支援通過埠來檢測,不支援通過url來檢測。

nginx對big request header的支援不是很好,如果client_header_buffer_size設定的比較小,就會返回400bad request頁面。

nginx負載均衡配置參考:

每個裝置的狀態可以設定為:

1.down 表示單前的server暫時不參與負載

2.weight 預設為1.weight越大,負載的權重就越大。

3.max_fails :允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream 模組定義的錯誤

4.fail_timeout:max_fails次失敗後,暫停的時間。

5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。

比較常用的負載均衡技術

目前比較常用的負載均衡技術主要有 1.基於dns的負載均衡 通過dns服務中的隨機名字解析來實現負載均衡,在dns伺服器中,可以為多個不同的位址配置同乙個名字,而最終查詢這個名字的客戶機將在解析這個名字時得到其中乙個位址。因此,對於同乙個名字,不同的客戶機會得到不同的位址,他們也就訪問不同位址上的w...

比較常用的負載均衡技術

目前比較常用的負載均衡技術主要有 1.基於dns的負載均衡 通過dns服務中的隨機名字解析來實現負載均衡,在dns伺服器中,可以為多個不同的位址配置同乙個名字,而最終查詢這個名字的客戶機將在解析這個名字時得到其中乙個位址。因此,對於同乙個名字,不同的客戶機會得到不同的位址,他們也就訪問不同位址上的w...

負載均衡技術

基本概念 反向 反向 reverse proxy 方式是指以 伺服器來接受internet上的連線請求,然後將請求 給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時 伺服器對外就表現為乙個伺服器。cdn的全稱是content delivery networ...