負載均衡集羣介紹

負載均衡集羣介紹nginx

• 主流開源軟件LVS、keepalived、haproxy、nginx等算法

• 其中LVS屬於4層(網絡OSI 7層模型),nginx屬於7層,haproxy既能夠認爲是4層,也能夠當作7層使用apache

• keepalived的負載均衡功能其實就是lvs後端

• lvs這種4層的負載均衡是能夠分發除80外的其餘端口通訊的,好比MySQL的,而nginx僅僅支持http,https,mail,haproxy也支持MySQL這種服務器

• 相比較來講,LVS這種4層的更穩定,能承受更多的請求,而nginx這種7層的更加靈活,能實現更多的個性化需求網絡

LVS介紹架構

• LVS是由國人章文嵩開發負載均衡

• 流行度不亞於apache的httpd,基於TCP/IP作的路由和轉發,穩定性和效率很高ip

• LVS最新版本基於Linux內核2.6,有好多年不更新了資源

• LVS有三種常見的模式:NAT、DR、IP Tunnel

• LVS架構中有一個核心角色叫作分發器(Load balance),它用來分發用戶的請求,還有諸多處理用戶請求的服務器(Real Server,簡稱rs)

LVS NAT模式

• 這種模式藉助iptables的nat表來實現

• 用戶的請求到分發器後,經過預設的iptables規則,把請求的數據包轉發到後端的rs上去

• rs須要設定網關爲分發器的內網ip

• 用戶請求的數據包和返回給用戶的數據包所有通過分發器,因此分發器成爲瓶頸

• 在nat模式中,只須要分發器有公網ip便可,因此比較節省公網ip資源

LVS IP Tunnel模式

• 這種模式,須要有一個公共的IP配置在分發器和全部rs上,咱們把它叫作vip

• 客戶端請求的目標IP爲vip,分發器接收到請求數據包後,會對數據包作一個加工,會把目標IP改成rs的IP,這樣數據包就到了rs上

• rs接收數據包後,會還原原始數據包,這樣目標IP爲vip,由於全部rs上配置了這個vip,因此它會認爲是它本身

LVS DR模式

• 這種模式,也須要有一個公共的IP配置在分發器和全部rs上,也就是vip

• 和IP Tunnel不一樣的是,它會把數據包的MAC地址修改成rs的MAC地址

• rs接收數據包後,會還原原始數據包,這樣目標IP爲vip,由於全部rs上配置了這個vip,因此它會認爲是它本身

LVS調度算法

• 輪詢 Round-Robin  rr

• 加權輪詢 Weight Round-Robin wrr

• 最小鏈接 Least-Connection lc

• 加權最小鏈接 Weight Least-Connection wlc

• 基於局部性的最小鏈接 Locality-Based Least Connections lblc

• 帶複製的基於局部性最小鏈接 Locality-Based Least Connections with Replication  lblcr

• 目標地址散列調度 Destination Hashing dh

• 源地址散列調度 Source Hashing  sh

(1)輪叫調度(Round Robin)(簡稱 rr),這種算法是最簡單的,無論後端 RS 配置和處理能力,很是均衡地分發下去。

(2)加權輪叫(Weighted Round Robin)(簡稱 wrr),比上面的算法多了一個權重的概念,能夠給 RS 設置權重,權重越高,那麼分發的請求數越多,權重取值範圍 0-100。

(3)最少連接(least connection)(LC),這個算法會根據後端 RS 的鏈接數來決定把請求分發給誰,好比 RS1 鏈接數比 RS2 鏈接數少,那麼請求就優先發給 RS1。

(4)加權最少連接(Weighted Least Connections)(WLC) ,比第三個算法多了一個權重的概念。

相關文章
相關標籤/搜索