是否有负载平衡器可以让我在部署时手动关闭服务器?

sco*_*ott 3 load-balancing

似乎 HAProxy 不允许这样做。我们在后端有 Tomcat 服务器,并计划使用 Apache + mod_jk 进行负载平衡。我们正在考虑切换到像 Netscaler 这样功能更全面的东西,但我没有卖掉,因为我正在寻找的部分功能是能够进行无缝部署,我可以在之前从负载平衡器中删除其中一台 Tomcat 服务器重新启动它。

小智 7

HAProxy 允许您通过将命令传递到 stats 套接字以禁用服务器来执行此操作。这将耗尽连接(与此服务器的现有连接将持续存在,但不会建立连接)。

此页面很好地总结了可用命令:http : //code.google.com/p/haproxy-docs/wiki/UnixSocketCommands

和一个禁用示例:

echo "disable server <backend_name>/<server_name>" | socat stdio /var/run/haproxy.stat
Run Code Online (Sandbox Code Playgroud)

其中 /var/run/haproxy.stat 是命令的 UNIX 域套接字,它在 haproxy 配置文件中配置如下:

global
    stats socket /var/run/haproxy.stat mode 600 level admin
Run Code Online (Sandbox Code Playgroud)

与任何其他全局选项一起。

不是你不具备的插座通过socat沟通,你可以连接到它像任何其他UNIX域套接字,这是很简单的Python,Perl和PHP,C等socat主要用于为方便起见,例子。