我正在尝试研究为我们的 TCP 服务找到 HA 解决方案以及(少量)负载平衡的最佳方法。我发现的所有解决方案(例如 HAProxy、LVS)都使用一台主机,该主机拥有 TCP 服务 IP,当主机崩溃时,备份系统(通过 keepalived、VRRP)会使用该服务 IP 变得可用。这很好。
但是我没有找到通过平稳传输(不丢失数据包)使备份系统成为活动系统的解决方案:有时我需要更新/更改/重新启动当前主机,因此我希望新连接转到备份系统,而旧/当前连接仍由旧主机处理,直到它们完成,这样我就可以重新启动旧主机。这可能吗?还是不能这样做?
并且梦想着:最佳解决方案是将当前连接(加上服务 IP)转移到备份机器。这个梦想有解决方案吗?
答案1
我不完全确定你想要什么,但如果是“顺利传输而不丢失数据包”:
我从未使用过keepalived
或VRRP
实现,因为大多数(全部?)都缺乏斯托尼特, AFAIK。
但是:在开源世界中建立高可用性集群的行业标准是corosync/pacemaker 堆栈,提供此功能。