7

问题

当主要主机在关闭后可用时,我可以让 haproxy 关闭与备份主机的所有连接吗?

语境

我正在使用 HAproxy 为 pubsub 进行故障转移。

haproxy 后端配置如下所示:

listen pubsub 0.0.0.0:1234
    mode tcp

    server primary primary.x.com:1234 weight 1 inter 500 rise 10 fall 5 check
    server backup backup.x.com:1234 weight 1 inter 500 rise 10 fall 5 check backup

我为发布和订阅双方建立了长期的联系。

问题在于:

  • primary下跌降落
  • A连接backup并发布
  • B连接backup并订阅
  • primary被固定并再次活跃起来
  • C连接primary并发布但未B收到
  • D连接primary并订阅但未收到A的消息

我能看到的这个问题的最佳解决方案是让 haproxy 在主节点再次可用时强制关闭与备份主机的所有连接。

4

1 回答 1

5

我知道这是一个较老的问题,您现在可能已经找到了解决方案,但如果您还没有找到,那么我认为您正在寻找的答案是on-marked-up服务器选项。这是 1.5 版的新服务器选项。

根据文档,您可以提供在服务器被标记为“启动”时执行的操作。目前,唯一的行动是:

shutdown-backup-sessions:关闭所有备份服务器上的会话...

server primary ... on-marked-up shutdown-backup-sessions
于 2014-11-18T19:32:21.277 回答