LVS vs HAProxy,我应该选择哪个?

Mic*_*ine 22 failover load-balancing haproxy lvs

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

小智 25

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

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

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

我想说的最后一点是 HAproxy 是用户空间(认为“更容易定制/调整”,但速度较慢(性能)),而 LVS 位于内核空间(认为“快得可怕”,但像内核一样僵硬)。另外,不要忘记“升级 LVS 可能意味着内核更改 - 因此,重新启动”......

总之,为正确的工作使用正确的工具。


lg.*_*lg. 9

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

  • 我将 HAProxy 用于纯 tcp 服务器并且运行良好。源IP隐藏是所有负载均衡器的问题。 (3认同)
  • lvs 和 ha 代理做同样的事情。我更喜欢 LVS,真的更快,因为它在内核上运行。 (3认同)
  • 我相信隐藏源 IP 是负载均衡器不常用于 SMTP 服务的原因之一。 (2认同)