Lvs
##缺陷
沒有后端主機健康狀態(tài)檢查骂倘,但可以通過自己編寫腳本來檢測
## 輪詢(Round Robin)
輪詢巴席,依次向每個服務(wù)器發(fā)送請求
## 加權(quán)輪詢(Weight Round Robin)
根據(jù)權(quán)重進(jìn)行請求的發(fā)送
## 源地址哈希(Source Hashing)
根據(jù)客戶端ip進(jìn)行hash漾唉,實現(xiàn)session綁定
## 目標(biāo)地址哈希(Destination Hashing)
把對于同一個IP地址的請求,發(fā)送給同一個server
## 最少連接(Least-Connection)
把新的連接分配到當(dāng)前活動連接數(shù)最小的服務(wù)器电爹,active代表當(dāng)前服務(wù)器活動連接丐箩,inactive代表當(dāng)前服務(wù)器非活動
具體算法 active*256+inactive恤煞,得到的值,誰的最小概漱,給誰分配
## 加權(quán)最少連接(Weighted Least-Connection)
具體算法 (active*256+inactive)/weight瓤摧,得到的值照弥,誰的最小进副,給誰分配,權(quán)值標(biāo)識機器處理性能给赞。
如果第一個進(jìn)來的時候机打,每臺服務(wù)器算出來的結(jié)果都一樣,這樣可能就要選到性能最差的那臺(都一樣就輪詢)片迅,這是一個缺點残邀,加權(quán)和不加權(quán)都有這個缺點
## 最短期望延遲(Shortest Expected Delay)
改進(jìn)的wlc算法
具體算法 (active+1)*256/weight
同上一個比較,除去了影響不大的inactive數(shù)目柑蛇,但是在計算活動連接數(shù)的時候罐旗,先加上1,保證了唯蝶,即使在活動連接數(shù)為0的情況下,還避免使用輪詢遗嗽,隨機選擇
## 不排隊(Never Queue)
改進(jìn)的sed算法
如果有連接為0的主機粘我,則先給此主機,如果沒有痹换,則按照sed算法進(jìn)行分配
## 基于局部性的最少連接(Locality-Based Least Connection)
類似于dh算法征字,通常先按照最少連接來分配娇豫,然后以后的對應(yīng)ip的訪問就要調(diào)度到第一次響應(yīng)的那臺主機上,如果此主機down或者負(fù)載到一半以上袖肥,則會再按照最少連接找一臺服務(wù)器,然后發(fā)送請求
## 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication)
基于lblc算法,只不過,此算法是將目標(biāo)ip和后端集群做綁定,其他和lblc一樣
Nginx
##以前版本
### 加權(quán)輪詢(weight)
根據(jù)權(quán)重來進(jìn)行后端主機的分配
### 源地址hash(ip_hash)
根據(jù)訪問者ip來進(jìn)行分配后端主機氛什,固定的IP會被分配到固定的主機上,可以解決session問題,但是會破壞負(fù)載均衡特性
### 最小響應(yīng)時間(fair烤镐、第三方)
按后端主機響應(yīng)時間來分配請求渡处,響應(yīng)時間短的優(yōu)先分配,一般不用稼锅,因為網(wǎng)絡(luò)問題不確定性太多
### 目標(biāo)地址hash(url_hash剩晴、第三方)
按客戶端訪問的主機url進(jìn)行分配客戶端,比較適合后端是緩存服務(wù)器的場景
##2016-08-17 版本(增加或者改變的)
### 自定義hash內(nèi)容(hash key [consistent])
這個不知道在那個版本加入的,可以自己指定hash的鍵戏蔑,如果指定為hash $remote_addr 就和ip_hash是一樣的,hash 后邊的那個變量為nginx可用變量,查手冊獲得骤视。如果后邊的 consistent 被指定笼裳,則說明要使用一致性hash代替普通hash抽减,這樣的話在后端是緩存服務(wù)器的時候法牲,出現(xiàn)down機或者新添加機器的時候,就可以使緩存失效的情況大大減少。(具體原因請百度 一致性hash)
### 最少連接(least_conn)
顯而易見,按照后端主機的最少活動連接數(shù)分配食听,后端主機性能越強肃弟,處理能力越強箩兽,則越能接受到多的連接(拋開網(wǎng)絡(luò)因素)
### 最短時間和最少連接(least_time connect | first_byte | last_byte)
如果參數(shù)選擇connect汗贫,則和least_conn一樣咐蝇,如果是first_byte,則根據(jù)第一個字節(jié)到達(dá)后端主機的時間后室,如果是last_byte俯逾,則根據(jù)最后一個字節(jié)到達(dá)后端主機的時間。
Haproxy
### 最少活動連接 (leaseconn)
最少的活動連接數(shù)蝇恶,在sql撮弧,ldap等服務(wù)中使用
### 源地址hash (source)
按照客戶端地址hash值進(jìn)行分配
### 目標(biāo)uri hash(uri)
根據(jù)訪問的地址的uri進(jìn)行hash贿衍,len基于多少個uri字符贸辈,depth基于多少個目錄層次
### url參數(shù) (url_params)
根據(jù)訪問的地址的參數(shù)進(jìn)行調(diào)度,參數(shù)指url http://www.baidu.com/index.html?name=lilei 中的name=lilei
### 請求頭信息調(diào)度(hdr(name))
根據(jù)訪問的頭信息來調(diào)度炊汤,比如 hdr(Host) 是根據(jù)訪問的主機名調(diào)度。
### cookie (rdp-cookie)
根據(jù)訪問者的cookie信息來調(diào)度
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者