簡介
haproxy通過固定引數balance指明對後端伺服器的排程演算法,該引數可以配置在listen或backend選項中。
haproxy的排程演算法分為靜態和動態排程演算法,但是有些演算法可以根據引數在靜態和動態演算法中相互轉換。
#官方文件
1)靜態排程演算法:
2)動態排程演算法:
靜態演算法☞static-rr
靜態演算法☞first
配置:balance first
動態演算法☞roundrobin
動態演算法☞leastconn
其他演算法☞source
取模法:
所謂取模運算,就是計算兩個數相除之後的餘數,10%7=3, 7%4=3,(2^32-1)%(1+1+2)。
2)取模法示意圖:
一致性hash:
hash物件:
一致性hash示意圖:
其他演算法☞uri
其他演算法☞url_param
其他演算法☞hdr
其他演算法☞rdp-cookie
基於iptables實現:
net.ipv4.ip_forward = 1
# iptables -t nat -a prerouting -d 192.168.7.101 -p tcp --dport 3389 -j dnat --todestination 172.18.139.20:3389
# iptables -t nat -a postrouting -s 192.168.0.0/21 -j snat --to-source 192.168.7.101
其他演算法☞random
演算法總結
first #使用較少
static-rr #做了session共享的web集群
roundrobin
random
leastconn #資料庫
source #基於客戶端公網ip的會話保持
uri--------------->http #快取伺服器,cdn服務商
hdr #基於客戶端請求報文頭部做下一步處理
rdp-cookie #很少使用
HAProxy的排程演算法
haproxy作為乙個負載均衡器,自然會有許多對後端伺服器的排程演算法來供我們使用,那麼接下來我們就來對這些排程演算法進行一一介紹 haproxy可以通過修改balance欄位的值從而修改其排程演算法,balance欄位應用於 default frontend backend 欄位中 balance...
haproxy負載均衡演算法
haproxy負載均衡演算法 1 roundrobin 表示簡單的輪詢,每個伺服器根據權重輪流使用,在伺服器的處理時間平均分配的情況下這是最流暢和公平的演算法。該演算法是動態的,對於例項啟動慢的伺服器權重會在執行中調整。2 leastconn 連線數最少的伺服器優先接收連線。leastconn建議用...
LVS排程演算法(上) 靜態排程演算法
lvs的排程方法有十幾中,每種方法的排程標準和適用場景不同。大體有兩大類,分別為固定排程方法或稱為靜態排程方法,另一類是動態排程方法。常用的具體演算法有十種。1 輪詢排程 rr 將所有請求平均的分發到每個集群節點上,即輪流排程。2 加權輪詢排程 wrr 由於不同的伺服器效能不同,因此要考慮讓效能高的...