tengine的排程演算法

2021-08-14 02:20:33 字數 999 閱讀 4624

一)、排程演算法

nginx的upstream指令用於指定proxy_pass和fastcgi_pass所使用的後端伺服器,即nginx的反向**功能,因此可以將兩者結合起來使用以達到負載均衡的目的,而nginx也支援多種排程演算法:

1、輪詢(預設)

每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,則會跳過該伺服器分配至下乙個監控的伺服器。並且它無需記錄當前所有連線的狀態,所以它是一種無狀態排程。

2、weight

指定在輪詢的基礎上加上權重,weight和訪問比率成正比,即用於表明後端伺服器的效能好壞,若後端伺服器效能較好則可將大部分請求分配給它,已實現其力所能及。

例如:我後端伺服器172.23.136.148配置:e5520*2 cpu,8g記憶體

後端伺服器172.23.136.148配置:xeon(tm)2.80ghz * 2,4g記憶體

我希望在有30個請求到達前端時,其中20個請求交給172.23.136.148處理,剩餘10個請求交給172.23.136.149處理,就可做如下配置

upstream web_poll

3、ip_hash 

每個請求按訪問ip的hash結果分配,當新的請求到達時,先將其客戶端ip通過雜湊演算法進行雜湊出乙個值,在隨後的請求客戶端ip的雜湊值只要相同,就會被分配至同乙個後端伺服器,該排程演算法可以解決session的問題,但有時會導致分配不均即無法保證負載均衡。

例如:upstream web_pool

4、fair(第三方)

按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

upstream web_pool

5、url_hash(第三方)

按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,後端伺服器為快取時比較有效。

例:在upstream中加入hash語句,server語句中不能寫入weight等其他的引數,hash_method是使用的hash演算法

upstream web_pool

LVS排程演算法(上) 靜態排程演算法

lvs的排程方法有十幾中,每種方法的排程標準和適用場景不同。大體有兩大類,分別為固定排程方法或稱為靜態排程方法,另一類是動態排程方法。常用的具體演算法有十種。1 輪詢排程 rr 將所有請求平均的分發到每個集群節點上,即輪流排程。2 加權輪詢排程 wrr 由於不同的伺服器效能不同,因此要考慮讓效能高的...

典型的排程演算法

先來先服務排程演算法 fcfs 從就緒佇列中選擇最先進入該佇列中的的程序。屬於不可剝奪演算法,當長任務先到達系統,就會使得後面的許多短作業等待更長的時間。對長作業有利,對短作業不利 現對sjf和高響應比 有利於cpu繁忙型作業,不利於i o繁忙型作業。短作業優先排程演算法 sjf 從就緒佇列中選擇乙...

HAProxy的排程演算法

haproxy作為乙個負載均衡器,自然會有許多對後端伺服器的排程演算法來供我們使用,那麼接下來我們就來對這些排程演算法進行一一介紹 haproxy可以通過修改balance欄位的值從而修改其排程演算法,balance欄位應用於 default frontend backend 欄位中 balance...