弹性负载均衡

4
我想知道是否有办法进行弹性负载平衡。我已经了解了关于HAProxy的知识,但似乎需要关闭HAProxy才能重新配置它以适应更多或更少的机器。
更加明确地说,我有一个Web后端集群(假设是Apache + Mod_Rails)。我可以监视后端的使用情况,如果流量非常高,可以快速添加另一台具有相同内容的机器(大约几秒钟)。然而,我不知道如何在不重新启动HAProxy的情况下使用附加的后端(可能影响可用性) 。是否可以使用HAProxy或其他负载均衡器来实现这一点?
我考虑可能有一种备份负载均衡器的方法。然后,我可以关闭其中一个,更新其配置,重新启动它,然后再关闭另一个。但我没有一个好主意如何做到这一点。
2个回答

2
如果您需要添加新的服务器,您必须重新启动它,尽管使用“-sf $ oldpid”启动新进程时几乎无法检测到,因为新旧进程都在并行工作。
如果您需要暂时禁用服务器,则有几个选项:
1)(首选):启用“option http-disable-on-404”,并操纵您的服务器检查响应以返回404。这将禁用新连接,但仍允许现有用户完成其会话。然后您安排返回500,并可以停止进程。该方法的优点是您无需触及负载均衡器,一切都由您操作的服务器控制。这是大多数明智的基础设施的做法。
2)简单方法:使用socat连接到统计套接字并禁用要处理的服务器:
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

只要您没有修改配置,即使它仍然未被检测到,也没有必要重新启动。

0

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

免费试用版可用,开发人员许可证也可用,因此您可以无成本地模拟您想要实现的内容。

如果您想走云路线,Zeus软件也可从多个云提供商处获得。


我没有为此预算,所以这不是一个选择。即便如此,在他们的网站上我也没有看到与我寻找的功能相匹配的内容。 - dschatz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接