1. 程式人生 > >幾種常見的軟體負載均衡的演算法。

幾種常見的軟體負載均衡的演算法。

主要的幾種負載均衡的演算法都在nginx裡面有用到,下面這篇文章對這幾種演算法介紹比較詳細,請參考。

文中提到了幾種常見的軟體負載均衡的演算法,平均分配(輪詢),加權輪詢;ip hash;fair(最小值負載均衡)這裡需要提到一點,筆者曾見到過一位同事分析採用這個最小值負載均衡演算法可能產生抖動,由於機器上報延遲產生,同時上文中也提到了“這種策略具有很強的自適應性,但是實際的網路環境往往不是那麼簡單,因此要慎用。”;通用hash,一致性hash(擴容比較方便);隨機分配。

其中筆者的一位同事就是採用的帶權值的隨機負載均衡的演算法:每個機器的空閒率[0.01,1) 1 - 實際請求量/機器負載能力;然後將所有機器的空閒率相加和S,隨機產生一個[0.01,1)的數R;得到D=S*R;用D依次減去每臺機器的空閒率直到D < 0那麼就選中這臺機器;這種方法比前面最小值負載均衡的演算法要平緩。

除了nginx還有兩種常用的負載均衡的軟體LVS 和 HAProxy

三種軟體所用的中轉模式總結請見文章:

三種負載均衡軟體的優缺點請見文章:


相關推薦

no