Haproxy 在 DB 模式下缓慢重新加载

Haproxy 在 DB 模式下缓慢重新加载

最近我开始使用出色的负载平衡工具-Haproxy。

只有一件令人不安的事情我不知道该如何处理。我们使用 haproxy 来平衡 mysql 流量。当有大量流量和许多连接时,haproxy 需要很长时间才能重新加载(约 30 分钟),而当流量较少时,它会在 1 分钟内重新加载。

我确实重新加载了:

service haproxy reload

当然,如果我需要紧急更改配置,我希望 haproxy 能够非常快速地重新加载。终止等待断开连接的 haproxy 实例会导致 msyql 连接断开。

看来我在 haproxy 的设置或应用程序的设置中犯了错误。如果你知道如何解决这个问题,请帮助我。

谢谢!

答案1

如果您将其传递-sf给 HAProxy(可能是 init 脚本所做的),那么旧的 haproxy 将处理连接,直到不再使用它们为止。因此,只要有一个连接处于打开状态,haproxy 就会有两个实例,直到它们全部完成。

如果您的应用使用连接池(保持连接打开以供重复使用),那么这些连接可能需要一段时间才能关闭。如果您正在使用连接池,那么您可能需要寻找某种 MaxAge 参数,该参数会导致连接在打开一定时间后关闭(对于此类参数,将在事务完成后检查使用期限,换句话说,在将连接返回池之前)。

相关内容