php应用程序的负载均衡器

时间:2013-09-14 16:43:28

标签: amazon-web-services load-balancing

如果你有时间,有关负载均衡器的问题。

所以我现在已经使用AWS一段时间了。超级基本实例,在我需要完成任务时使用它们来执行某些任务。

我的任务需要现在负载平衡。但它不是公共服务。它几乎是一个巨大的计算机工作,我不想在与我的网站相同的服务器上运行。

我设置了AWS负载均衡器,但它没有按照我的预期执行。 它被卡在一台服务器上,根本没有负载平衡。我已经读过为什么会这样做了,这一切都很好,但我需要它是一个严肃的循环负载均衡器。

编辑:

我已经在不同的区域设置了实例,但无论我添加到ELB的实例数是多少,它都只使用一个。如果我将该实例关闭,它会切换到另一个实例,所以我知道它正在工作。但我真的希望在任何情况下都能使用不同的。

我知道有其他选择。这是我的问题: 自定义php负载均衡器现在可以成为一个好的选择吗? IE:有一个服务器列表,并让php随机选择一个ec2实例。根本不可扩展,至少我可以在2分钟内设置它,它现在可以工作。

我是否应该花时间了解HAProxy的工作原理,并将其设置为代替AWS ELB?

我做错了,AWS的ELB确实做了循环法。我刚配错了什么?

编辑:

结构: 1)Web服务器找到要执行的任务。

2)如果它太大,它会将其发送给AWS(负载均衡器)。

3)在EC2上完成工作

4)通过curl向API报告

5)冲洗并重复

一切都很好。但是因为连接总是来自我的服务器(一个IP),所以它会粘在一台EC2机器上。

3 个答案:

答案 0 :(得分:1)

ELB适用于负载逐渐增加的站点。如果您预计负载会出现异常且突然的增加,您可以要求AWS为您预热。

我可以告诉你我在不同场景中使用过ELB,它总能很好地适合我。由于你没有提供太多关于你的架构的信息,我敢打赌ELB适合你,以及所有连接只打一个服务器的情况,我会问你:

1)您是否检查了ELB以查看它背后有多少个实例? 2)你在ELB背后的实例都还活着? 3)您是否通过ELB DNS访问您的应用程序?

无论如何,我摘录了ELB和HAProxy之间非常好比较的优秀文章。 http://harish11g.blogspot.com.br/2012/11/amazon-elb-vs-haproxy-ec2-analysis.html

  

ELB提供基于EC2的Round Robin和Session Sticky算法   实例健康状况。 HAProxy提供各种算法,如   Round Robin,Static-RR,Least connection,source,uri,url_param等。

希望这有帮助。

答案 1 :(得分:0)

  

对于使用Amazon ELB的许多用户来说,这一点令人惊讶。亚马逊   当传入的流量来自时,ELB表现得很奇怪   单个或特定IP范围,它不能有效地循环   坚持要求。亚马逊ELB开始偏爱单个EC2或   单独可用区域中的EC2位于多可用区部署中   在这种情况下。例如:如果您有申请   部署了(客户公司)和应用程序B以及应用程序B.   在带有ELB前端的AWS基础架构内部。所有的流量   从应用程序A(单个主机)生成的应用程序发送到应用程序B.   AWS,在这种情况下,应用程序B的ELB将无法高效Round   知道在其下部署的Web / App EC2实例的流量。这是   因为来自应用程序A的整个传入流量来自a   将启动单个防火墙/ NAT或特定IP范围服务器和ELB   不均匀地将请求粘贴到单个AZ中的单个EC2或EC2。   注意:用户通常在负载测试期间遇到这种情况,因此非常适合   从多个分布式代理加载测试AWS Infra。

以下文章http://harish11g.blogspot.in/2012/07/aws-elastic-load-balancing-elb-amazon.html

中第9点的更多信息

答案 2 :(得分:0)

HAProxy不难学,并且非常轻巧而且灵活。我实际上使用 ELB后面的HAProxy 来实现两全其美 - ELB面向Internet并解开SSL的强化,管理,不干涉的可靠性,以及HAProxy的灵活配置让我很好调整事物如何击中我的服务器。我从来没有丢失过一个HAProxy实例,但是我这样做了,ELB只会将那个实例拒之门外......正如我所看到的那样,当后端服务器全部无法访问时(因为它的方式)使得ELB 认为 HAProxy是不健康的,但这是我的设置中的设计。