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


21

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

Answers:


24

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

如果您了解这一点,则可以在正确的位置使用它。例如:如果您仅需要基于连接数进行平衡(比方说),那么第4层负载平衡器就足够了;另一方面,如果要基于HTTP响应时间进行负载平衡,则需要更高级别的LB。

使用较高级别的LB的缺点是需要的资源(对于相同数量的流量来说)。优点很明显-例如“数据包级检查”,“协议路由”等-比简单的“数据包路由”复杂得多。

我要说明的最后一点是,HAproxy是用户空间(认为“更容易自定义/调整”,但速度(性能)要慢得多),而LVS在内核空间中(认为“像地狱一样快”,但像内核一样严格) )。另外,不要忘记“升级LVS可能意味着内核更改-因此,重新启动” ...

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


尽管人们从未真正实现过OSI层,但我仍然喜欢人们如何使用它们。
kubanczyk

9

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


1
+1,除了HAProxy主要用于HTTP,因为它否则会隐藏请求的源IP,这可能是个问题(例如SMTP RBL)
Antoine Benkemoun 2010年

3
我正在将HAProxy用于纯TCP服务器,并且运行良好。隐藏的源IP是所有负载均衡器的问题。
lg。

2
我相信隐藏的源IP是负载均衡器不经常用于SMTP服务的原因之一。
Stefan Lasiewski

3
lvs和ha代理执行相同的操作。我更喜欢LVS,因为它运行在内核上,因此速度更快。
迭戈·沃伊塔森

1
@AntoineBenkemoun,您可以使用HAProxy的透明模式来显示客户端IP。
Thomas Decaux 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.