因為需要,嘗試了預研下面常用幾個軟負載,大概整理了如下:
1.lvs效能最強
1. lvs :linux virtual server(vs),請求對於realserver(rs)都是透明的(不修改src),使用核心**,相比應用實現效能要高很多。
分為3種模式:
l dr:效能最好
在vs 和rs 使用相同的vip,rs上抑制arp。請求通過vs 分發,應答繞過直接回覆。
優點:效能最高、流量小
缺點:機器都需要在同乙個vlan下,real server 之間無法通過vip通訊。需要抑制vip arp 有風險。
l ip tunnel 效能適中
使用ipip封包,解決跨vlan問題,相比dr 就多了一層ip封裝,也是只處理請求。
優點:跨vlan
缺點:雖然應用最為廣泛,但windows 不支援ipip。
l nat
與前兩種相比,不需要繫結vip,但也要修改路由,realserver 所有流量都需要經過,需要處理很多無用流量,一般實用性很差。
優點:不需要要繫結vip、跨vlan
支援rs 通過vip訪問rs本身,需要對rs做抑制路由操作,所有流量直接發給閘道器。
缺點:對於請求為snat,應答為dnat。為實現dnat,需要將rs 的預設閘道器指向vs
vs 被當成閘道器處理,realserver所有的流量都將發給vs,vs的頻寬壓力會很大。
配置工具:如果使用readhat版本,可以使用piranha提供的web ui工具配置,配置為需要手動同步一下主機板配置。
如果需要部署多個例項,而且經常改動,piranha 將提供很友好的配置環境。
2. haproxy 效能高,處理高併發、高連線
優點:
l 效能高,20w連線下,處理10w/s請求
(單程序處理效能1w/s樣子,為更好利用多核,多程序模式提公升空間很少,需要開啟多個例項,這樣一來前端必須上lvs負載多個例項埠)
l 7層、4層都行
l 不限於vlan ,只要網路策略通即可
l 可配性高
l 監控完善
注意點:
l src ip被修改,業務中publicip應該從 x-forward-for中獲取(haproxy也支援透明**,就像lvs的nat模式,存在問題)
l 流量double,千m網絡卡最多也只能支援500m流量
連線數超過65535時,需要考慮繫結多個ip
tcp **效能要比nginx要好。
haproxy 是預設單執行緒、也是最高效方式;也可以支援多執行緒(程序),但監控會隨機請求到的業務、部分功能無法正常使用。
3. nginx 專注於7層高併發,但不善於處理1w+連線數
要支援4層需要另外的patch,而且高連線數時效能無法和haproxy相比。
預設1個master+ 多個(核心)worker,可充分利用多核資源。
master和worker之間通過程序通訊實現,有點像iis5,相比ii6 效能要差些。
**不管haproxy還是nginx 都存在乙個問題,就是只有乙個執行緒在做receive,也就是無法均衡軟中斷。
對於主要的四層負載,使用者態執行時間很短,效能瓶頸在於主要軟中斷的處理、多個work其實也無濟於事;
當然也可以使用redis那樣,開啟多例項方式。
5. windows server 內建nbl 負載均衡功能
原理和lvs的dr相似,但是相比更加暴力,請求使用廣播方式,同乙個交換機下rs都將受到請求,rs通過一致性演算法
確認自己改處理請求還是丟棄請求。
本身效能沒有參考資料,配置繁瑣,再者廣播對交換機、rs都帶來不少額外壓力。相比使用lvs dr更方便。
指令碼工具
Nginx負載均衡的4種方案配置例項
1 輪詢 輪詢即round robin,根據nginx配置檔案中的順序,依次把客戶端的web請求分發到不同的後端伺服器。配置的例子如下 2 最少連線 web請求會被 到連線數最少的伺服器上。配置的例子如下 上面的例子只是在upstream節新增了least conn配置。其它的配置同輪詢配置。3 i...
Nginx負載均衡的4種方案配置例項
投稿 junjie 字型 增加 這篇文章主要介紹了nginx負載均衡的4種方案配置例項,本文講解了輪詢 最少連線 ip位址雜湊 基於權重的負載均衡等內容,需要的朋友可以參考下 1 輪詢 輪詢即round robin,根據nginx配置檔案中的順序,依次把客戶端的web請求分發到不同的後端伺服器。配置...
Nginx負載均衡的4種方案配置例項
1 輪詢 輪詢即round robin,根據nginx配置檔案中的順序,依次把客戶端的web請求分發到不同的後端伺服器。配置的例子如下 2 最少連線 web請求會被 到連線數最少的伺服器上。配置的例子如下 上面的例子只是在upstream節新增了least conn配置。其它的配置同輪詢配置。3 i...