LVS vs HAProxy,我应该select哪一种?

我正在寻找负载平衡故障转移策略的解决scheme,主要针对大型Web应用程序。 我们有很多服务需要平衡,比如web,MySQL,以及许多基于HTTP或TCP的服务。 但是我不确定他们的优点和缺点,以及我应该select哪一个。

    区分这两种解决scheme(LVS,HAproxy)的最重要的事情是在层4(LVS)工作,而在层7(HAproxy)工作。 请注意,图层参考来自OSInetworking模型。

    如果你明白这一点,你就可以在正确的地方使用一个。 例如:如果你只需要根据连接的数量进行平衡(比方说),那么第4层负载平衡器就足够了; 另一方面,如果你想基于HTTP响应时间的负载平衡器,你将需要一个更高层次的LB.

    使用更高级别的LB的缺点是所需的资源(对于相同数量的话,stream量)。 这些显而易见的 – 比如“数据包级别检查”,“协议路由”等 – 比简单的“数据包路由”要复杂得多。

    我想要做的最后一点是HAproxy是用户空间(认为“更容易定制/调整”,但速度更慢(性能)),而LVS在内核空间(认为“像地狱一样快”,但像内核一样僵化)。 此外,不要忘了“升级LVS可能意味着内核更改 – 人工,重启”…

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

    您应该同时使用:HAProxy是优秀的负载均衡器,LVS是故障转移的解决scheme,可避免单点故障。