LVS 与 HAProxy,我应该选择哪一个?

LVS 与 HAProxy,我应该选择哪一个?

我正在寻找一种负载平衡和故障转移策略解决方案,主要针对大型 Web 应用程序。我们有许多服务需要平衡,例如 Web、MySQL 和许多其他基于 HTTP 或 TCP 的服务。但我不确定它们的优缺点是什么,以及我应该选择哪一个。

答案1

这两个解决方案(LVS、HAproxy)最重要的区别在于,一个工作在第 4 层(LVS),另一个工作在第 7 层(HAproxy)。请注意,这些层引用来自 OSI 网络模型。

如果您理解了这一点,那么您将能够在正确的地方使用它。例如:如果您需要仅根据连接数进行平衡(假设),则第 4 层负载平衡器就足够了;另一方面,如果您想根据 HTTP 响应时间进行负载平衡,则需要更高层级的 LB。

使用更高级别 LB 的缺点是需要资源(对于相同数量的流量)。优点是显而易见的 - 想想“数据包级别检查”、“协议路由”等 - 事情远比简单的“数据包路由”复杂得多。

我要强调的最后一点是,HAproxy 是用户空间(认为“定制/调整起来更容易”,但速度较慢(性能)),而 LVS 是内核空间(认为“速度极快”,但与内核一样严格)。另外,不要忘记“升级 LVS 可能意味着内核更改 - 因此,需要重新启动”...

总之,使用正确的工具来完成正确的工作。

答案2

您应该同时使用两者:HAProxy 是出色的负载均衡器,而 LVS 是用于故障转移并避免单点故障的解决方案。

相关内容