gpt4 book ai didi

http - 弹性负载均衡

转载 作者:可可西里 更新时间:2023-11-01 15:29:22 26 4
gpt4 key购买 nike

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

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

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

最佳答案

如果你需要添加新的服务器,你必须重新启动它,虽然当你用“-sf $oldpid”启动新进程时几乎检测不到它,因为新旧进程都在工作平行。

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

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

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

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

关于http - 弹性负载均衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3260376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com