haproxy的排程演算法

2021-09-29 08:51:59 字數 1521 閱讀 6758

簡介

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 由於不同的伺服器效能不同,因此要考慮讓效能高的...