是否可以在 Haproxy 中在服务器重新加载时保留 stick-tables

是否可以在 Haproxy 中在服务器重新加载时保留 stick-tables

我读过了https://github.com/haproxy/haproxy/blob/master/examples/seamless_reload.txt关于如何在重新加载时设置持久服务器状态,但这不会保存/加载 stick-tables 上的内容。这可能吗?

答案1

是的,可以使用设置了多主复制的对等节点。从haproxy 文档的 Peers 部分

可以通过多主方式在多个 haproxy 实例之间通过 TCP 连接传播 stick-table 中任何数据类型的条目。每个实例将其本地更新和插入推送到远程对等点。推送的值会覆盖远程值而不进行聚合。系统会自动检测中断的交换并从最后一个已知点恢复。此外,在软重启期间,旧进程使用这样的 TCP 连接连接到新进程,以在新进程尝试连接到其他对等点之前推送其所有条目。这可确保在重新加载期间非常快速的复制,即使对于大型表,通常也只需几分之一秒。请注意,服务器 ID 用于远程识别服务器,因此重要的是配置看起来相似,或者至少在所有参与者的每台服务器上强制使用相同的 ID。

相关内容