Load-Balancing
LVS vs HAProxy,我應該選擇哪個?
我正在尋找負載平衡和故障轉移策略的解決方案,主要用於大型 Web 應用程序。我們有許多服務需要平衡,例如 web、MySQL 和許多其他基於 HTTP 或 TCP 的服務。但我不確定它們的優缺點是什麼,我應該選擇哪個。
區分這兩種解決方案(LVS、HAproxy)的最重要的一點是,一種在第 4 層(LVS)工作,另一種在第 7 層(HAproxy)工作。請注意,層引用來自 OSI 網路模型。
如果您了解這一點,您將能夠在正確的地方使用它。例如:如果您需要僅基於連接數(比方說)進行平衡,則第 4 層負載平衡器就足夠了;另一方面,如果你想要基於 HTTP 響應時間的負載均衡器,你將需要更高層的 LB。
使用更高級別 LB 的缺點是所需的資源(例如,對於相同數量的流量)。優點是顯而易見的——想想“數據包級別檢查”、“協議路由”等——比簡單的“數據包路由”要復雜得多。
我想說的最後一點是 HAproxy 是使用者空間(認為“更容易定制/調整”,但速度較慢(性能)),而 LVS 在核心空間中(認為“快得像地獄”,但與核心一樣僵硬)。另外,不要忘記“升級 LVS 可能意味著核心更改 - ergo,重啟”……
總之,為正確的工作使用正確的工具。