假设我在Amazon AWS上有20台服务器,而且我还为这些服务器安装了AWS ELB。我听说HAProxy是可靠且快速的TCP / HTTP负载均衡器,所以问题是:
由于
答案 0 :(得分:1)
在某些情况下,人们选择自己的负载平衡解决方案,如HAProxy而不是ELB:
金融交易:ELB是一项不透明的服务。不提供日志。因此,如果您缺少交易,您将不知道ELB是否放弃了它们。
不适用于流量峰值:ELBs缩放至少需要5分钟。如果您的应用流量每5-10分钟翻一番,那么效果会很好。但是,如果它是一个恒定的速率,你会突然出现尖峰,那么你将遇到ELB的问题。
ELB可能比运行自己的Loadbalancing慢:在我的环境中,通过使用HAProxy / Nginx(用于SSL终止),我获得了15%的性能提升。每次通话大概是30ms,但请记住我使用的是SSL,因此我使用CPU功率。
ELB只进行循环负载平衡,而HAProxy还有很多。
HAProxy还有更多ELB不支持的配置。这取决于是否需要它们来应用它们。
答案 1 :(得分:1)
在一套应用程序中,我都运行了。 ELB-> haproxy->一套应用程序。在我的情况下会发生以下情况:
这样做的好处是我可以移动应用程序而无需更改其URL 缺点是ELB不是一个固定的IP地址,所以如果你需要从IP地址而不是cname指向它,你就无法做到。
答案 2 :(得分:0)
简短回答:不,你不需要HAProxy。选择ELB。
tldr;
是的,HAProxy功能强大且经过测试。
首先,您需要一个单独的EC2 HAProxy实例(而不是在每个需要平衡的EC2实例上安装HAProxy)。本质上,ELB等同于加载了某种负载平衡软件的EC2实例。
其次,在您的环境中同时使用ELB和HAProxy平衡实例是一种罕见的用例。您可能需要更精细的访问权限以及在负载均衡器上配置更多内容的能力。它完全取决于你正在做什么以及ELB可能给你带来什么问题。谷歌阅读可能的用例。
答案 3 :(得分:0)
我正在使用ELB和Haproxy。
当客户使用来自唯一IP的Web服务时,ELB会将其所有请求重定向到相同的主机。它没有规模。 (我认为它是来自src ip或类似东西的哈希)。
haproxy有另一种平衡器算法。
我保留ELB for HA(1 haproxy / availability zone)。每个haproxy实例都会重新发送到区域区域后端服务器