Load Balancer
負載平衡演算法 - 分散式系統中的流量分配策略。
Cheat Sheet

Round Robin
輪詢法
詳細說明
將請求按順序輪流分配到後端伺服器上,它平衡地對待後端的每一台伺服器,而不關心伺服器實際的連線數和目前的系統負載
Weight Round Robin
加權輪詢法
詳細說明
不同的後端伺服器可能機器的配置和目前系統的負載並不相同,因此它們的抗壓能力也不相同。給配置高、負載低的機器配置更高的權重,讓其處理更多的 Request; 而配置低、負載高的機器,給其分配較低的權重,降低其系統負載,加權輪詢能很好地處理這一問題,並將請求順序且按照權重分配到後端。
Smooth Weight Round Robin
平滑加權輪詢法
改進的加權輪詢,避免某一台高權重伺服器連續接收大量請求。
Random
隨機法
詳細說明
透過系統的隨機演算法,根據後端伺服器的清單大小值來隨機選取其中的一台伺服器進行存取。由機率統計理論可以得知,隨著客戶端呼叫服務端的次數增多,其實際效果越來越接近平均分配呼叫量到後端的每一台伺服器,也就是輪詢法的結果。
Weight Random
加權隨機法
詳細說明
與加權輪詢法一樣,加權隨機法也根據後端機器的配置,系統的負載分配不同的權重。不同的是,它是按照權重隨機請求後端伺服器,而不是順序。
IP/URL Hash
來源位址雜湊法
詳細說明
Uses an algorithm that takes the source and destination IP address of the client and server to generate a unique hash key. This key is used to allocate the client to a particular server. As the key can be regenerated if the session is broken, this method of load balancing can ensure that the client is directed to the same server that it was using previously. This is useful if it’s important that a client should connect to a session that is still active after a disconnection and reconnection.
Least Connections
最小連線數法
詳細說明
最小連接數演算法比較靈活和智能,由於後端伺服器的配置不盡相同,對於請求的處理有快有慢,它是根據後端伺服器當前的連接情況,動態地選取其中當前積壓連接數最少的一台伺服器來處理目前的請求,盡可能地提高後端服務的利用效率,將負責合理地分流到每一台伺服器。
Least Time
最短響應時間法
選擇響應時間最短的伺服器來處理請求。
Sticky Session
會話黏滯
將同一用戶的請求始終路由到同一台伺服器,保持會話一致性。