您好,登錄后才能下訂單哦!
在使用haproxy時在backend段會用到balance以指明用何種方式實現后端服務器的調度。
balance:指明調度算法
動態算法:權重可以動態調整
靜態算法:調整權重不會實時生效,只能重啟才能生效
balance的算法有:roundrobin,static-rr,leastconn,source,uri,uri_param,hdr等
roundrobin算法:
輪詢,基于權重進行輪詢,此算法是動態的,每個后端服務器僅能最多接受4128個連接;
要求后端不能有狀態及會話方面的等,只能是靜態的頁面
當后端有會話等動態信息時,結合cookie使用,效果最佳
static-rr算法:
靜態的roundrobin,不支持動態調整;靜態算法,每個后端主機支持的數量無上限;
leastconn算法:
根據后端主機的負載數量進行調度,新的連接請求被派發至具有最少連接數目的后端服務器;
在長連接會話的場景中推薦使用此法,不適用http,動態算法
source算法:
將請求的源地址進行hash運算;由后端服務器的權重總數相除后派發至某匹配的服務器,此方法可以讓 同一個IP的請求發往同一個服務器;不過,當服務器權重總數發生變化時,如某服務器宕機或添加了 新的服務器,許多客戶端的請求可能會被派發至與此前請求不同的服務器;常用于負載均衡無cookie 功能的基于TCP的協議;其默認為靜態,不過也可以使用hash-type修改此特性;
hash-type:
map-based:取模法(除模取余法);(靜態的,默認的)
consistent:一致性哈希法;(動態的,使后時需要指定:hash-type consistent)
uri算法:
對URI的左半部分(“問號”標記之前的部分)或整個URI進行hash運算,并由服務器的總權重相除后派 發至某匹配的服務器;這可以使得對同一個URI的請求總是被派發至某特定的服務器,除非服務器的權重總數發生了變化;此算法常用于代理緩存或反病毒代理以提高緩存的命中率
例:http://www.baidu.com/abc/query?item=123 #紅色標記的部分是uri部分
hash-type:
map-based:取模法(除模取余法);(靜態的,默認的)
consistent:一致性哈希法;(動態的,使后時需要指定:hash-type consistent)
注:用到uri時,當訪問過后端某個頁面后,后面所有此頁面的請求都發至此服務器
當未訪問過后端某個頁面時,采用roundrobin算法,隨機挑選一個響應,并且隨后所有的此頁面的請求都發至此主機,這種算法,當后端緩存時非常有效果!!!!
roundrobin算法結合cookie的用法:
cookie的作用是基本瀏覽器實現session sticky;
cookie的使用方法:cookie <name> [rewrite|insert|prefix] [indirect] [nocache]
[rewrite|insert|prefix]:添加cookie的方式
rewrite:把原有的cookie替換
insert:在原有的cookie后中插入 #此種方式最為常用
prefix:在原有的cookie前插入
cookie常使用的方式:
cookie SERVERID insert indirect nocache
注:
a.SERVERID,是自己隨便指定的,在下面的例子中就是SERVERID=websrv1,SERVERID=websrv2;insert:表示插入原有cookie后邊
b.不根據源IP進行綁定,根據不同客戶端的進行綁定,這種方式我感覺比source要好,因為source是把同一IP的發往同一后端服務器;根據不同客戶端綁定,可以實現同一個公網IP的用戶,請求發送到不同的后端
c.roundrobin算法,結合cookie這種方式可以進行嘗試;這種方式彌補了roundrobin不保持會話的缺點
用法實例:
balance roundrobin
cookie SERVERID insert indirect
server web1 192.168.0.100 check weight 1 cookie websrv1
server web2 192.168.0.101 check weight 3 cookie websrv2
注:websrv1:是web1專有的cookie標識符,在客戶端瀏覽器的cookie中可以看到
websrv2:是web2專有的cookie標識符,在客戶端瀏覽器的cookie中可以看到
最常用的算法為:
roundrobin
source
uri
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。