弹性负载平衡

Posted

技术标签:

【中文标题】弹性负载平衡【英文标题】:Elastic Load Balancing 【发布时间】:2011-03-16 16:18:45 【问题描述】:

我想知道是否有办法进行。我已阅读有关 HAProxy 的信息,但似乎我需要关闭 HAProxy 以重新配置它以与更多或更少的机器一起使用。

为了让画面更清晰:我有一个 Web 后端集群(比如说 apache + mod_rails)。如果流量变得非常高,我可以监控后端的使用情况并非常快速地(以秒为单位)启动另一台具有相同内容的机器。但是,我不知道如何让 HAProxy 使用额外的后端而不重新启动它(损害可用性)。有没有办法使用 HAProxy 或其他负载均衡器来做到这一点?

我在想可能有一种方法可以让两个负载平衡器实现冗余。然后我可以关闭一个,更新它的配置,重新启动它,然后取下另一个。但我不知道如何做到这一点。

【问题讨论】:

【参考方案1】:

如果您需要添加新服务器,则必须重新启动它,尽管当您使用“-sf $oldpid”启动新进程时几乎无法检测到它,因为新进程和旧进程都在 并行。

如果您需要暂时禁用服务器,您有多种选择:

1)(首选):启用“选项 http-disable-on-404”并操纵服务器的检查响应以返回 404。这将禁用新连接,但仍允许现有用户完成他们的会话。然后你安排返回 500 并且你可以停止你的进程。这种方法的优点是您永远不必触摸 LB,一切都由您正在操作的服务器控制。大多数明智的基础设施都是这样做的。

2) 最简单的一个:使用 socat,连接到 stats 套接字并禁用您打算使用的服务器:

printf "disable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat

完成后启用它:

printf "enable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat

只要你不修改配置,就没有理由重新启动,即使它 仍未被发现。

【讨论】:

【参考方案2】:

如果您对此有预算,请访问 www.Zeus.com。几周后发布的新版本提供了开箱即用的功能,但您也可以使用现有版本提供服务级别监控,然后使用脚本语言和 API 为后端服务器创建自动配置功能.

免费评估和开发者许可证一样可用,因此您可以免费为您想要实现的目标建模。

Zeus 软件也可以从许多云提供商处获得,如果您想在某个时候沿着这条路线走下去。

【讨论】:

我对此没有任何预算,因此无法选择。即便如此,我在他们的网站上也没有看到与我正在寻找的功能相匹配的功能。

以上是关于弹性负载平衡的主要内容,如果未能解决你的问题,请参考以下文章

Paypal Node SDK payment.execute http req - 在弹性负载平衡上使用多个 ec2 实例维护状态。描述?

AWS EC2 上的 Websocket 负载平衡

AWS Beanstalk SSL 负载平衡环境

使用弹性负载均衡器处理 SSH 流量

AWS Opsworks:通过 https 进行负载平衡

Route 53 URL 转发到弹性负载均衡器