nginx的負載均衡

nginx做爲方向代理時,能夠爲後端服務器提供負載均衡的功能,其中加權輪詢策略使是其默認的負載均衡策略。權值大的服務器處理的請求也應該多。nginx採用加權輪詢策略時選取後端服務器的核心代碼是ngx_http_upstream_get_peer函數(位於ngx_http_upstream_round_robin.c中)。

代碼說明

(1)      peer[n].weight:後端服務器初始權重。


(2)      peer[n].current_weight:後端服務器當前權重,初始情況等於peer[n].weight。


(3)      peers->number:後端服務器的個數


(4)      peers->peer[0]:一個數組的第一個元素,這個數組的每個元素對應一個後端服務器。


(5)      一旦某個後端服務器n被選中後,會在其他處理函數中執行peer[n].current_weight–。


(6)      代碼18行乘以1000是爲了避免浮點處理,所以直接報被除數放大1000倍,也就是間接把精度提升到小數點後三位,注意這裏是權值的比較,因此把兩邊權值都放大1000倍並不會影響最終的比較結果。


參考鏈接:

http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666539620&idx=1&sn=2758397d2e406c47c63153f978ec0473&scene=23&srcid=0916i7QNDKwXZ60KwIbvczSC#rd


發佈了19 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章