1. 程式人生 > >負載均衡之haproxy負載均衡演算法及haproxy的工作模式

負載均衡之haproxy負載均衡演算法及haproxy的工作模式

haproxy負載均衡的演算法有如下7種:

  1. .roundrobin : 基於權重輪循。
  2. static-rr : 基於權重輪循。靜態演算法,執行時改變無法生效
  3. source : 基於請求源IP的演算法。對請求的源IP進行hash運算,然後將結果與後端伺服器的權重總數想除後轉發至某臺匹配伺服器。使同一IP客戶端請求始終被轉發到某特定的後端伺服器。
  4. leastconn : 最小連線。(適合資料庫負載均衡,不適合會話短的環境) 
  5. uri : 對部分或整體URI進行hash運算,再與伺服器的總權重想除,最後轉發到匹配後端。
  6. uri_param : 根據URL路徑中引數進行轉發,保證在後端伺服器數量不變的情況下,同一使用者請求分發到同一機器。
  7. hdr(<name>) : 根據http頭轉發,如果不存在http頭。則使用簡單輪循。

 

haproxy的工作模式:

  1. tcp:例項運行於純TCP模式,在客戶端和伺服器端之間將建立一個全雙工的連線,且不會對7層報文做任何型別的檢查;此為預設模式,通常用於SSL、SSH、SMTP等應用。
  2. http:例項運行於HTTP模式,客戶端請求在轉發至後端伺服器之前將被深度分析,所有不與RFC格式相容的請求都會被拒絕。
  3. health:例項工作於health模式,其對入站請求僅響應“OK”資訊並關閉連線,且不會記錄任何日誌資訊;此模式將用於響應外部元件的健康狀態檢查請求;目前業講,此模式已經廢棄,因為tcp或http模式中的monitor關鍵字可完成類似功能