我为下一个项目的数据存储配置了 2 台专用服务器。数据存储配置为主从复制。没有固有的自动故障转移,但我当然想要这个。也就是说,我希望访问主数据存储始终可以正常工作,而无需配置客户端库来检测主数据何时关闭并故障转移到从数据。
我见过基于 Spread Toolkit 的 Wackamole。您为 Wackamole 提供一组 IP 和一堆节点,并且无论任何节点的启动/关闭状态如何,这些 IP 都将保持可用/启动。Wackamole 检测节点何时关闭并 ARP 解析在现在关闭的节点上启动的 IP。它实际上很整洁。
所以,我的想法是使用 Wackamole 保持 2 个虚拟专用 IP 可用/启动。然后,客户端将始终使用相同的私有 IP 来访问主数据存储,并为从属数据存储使用相同但不同的 IP,即使这些 IP 托管在同一个节点上。
我的数据存储服务器通过专用网络访问。我不确定这是否会与 Wackamole 混淆。
这是疯了吗?您通常如何处理数据存储等私有服务的自动故障转移。
FWIW,没关系,但数据存储是 Redis。我不想听到“使用 mySQL”请 :)
谢谢。
这对我来说似乎很合理。您的客户端可能会在短时间内完全无法连接。让客户端知道不同服务器的好处是它可以立即尝试从服务器。但是,如果您可以忍受少量错误,那么这应该可行。
使用主主复制而不是主从。让您的客户写信给两个主人。读者将连接到任何可用的主节点。