我为下一个项目的数据存储配置了 2 台专用服务器。数据存储配置为主从复制。没有固有的自动故障转移,但我当然想要这个。也就是说,我希望对主数据存储的访问始终正常进行,而不必配置客户端库来检测主服务器何时关闭并故障转移到从服务器。
我见过基于 Spread Toolkit 的 Wackamole。您为 Wackamole 提供一组 IP 和一堆节点,无论任何节点的启动/关闭状态如何,这些 IP 都将保持可用/启动状态。Wackamole 会检测节点何时关闭,并对现在关闭的节点上处于启动状态的 IP 执行 ARP。实际上,这非常巧妙。
因此,我的想法是使用 Wackamole 来保持 2 个虚拟专用 IP 可用/正常运行。这样,客户端就会始终使用相同的专用 IP 来访问主数据存储,并使用相同但不同的 IP 来访问从属数据存储,即使这些 IP 托管在同一个节点上。
我的数据存储服务器通过私有网络访问。但我不确定这是否会干扰 Wackamole。
这是疯了吗?你通常如何处理数据存储等私有服务的自动故障转移。
不管怎样,这应该没关系,但数据存储是 Redis。我不想听到“使用 mySQL” :)
谢谢。
答案1
我觉得这很合理。在短时间内,您的客户端可能根本无法连接。让客户端了解不同的服务器的好处是,它可以立即尝试从服务器。但是,如果您可以忍受少量错误,这应该可行。
答案2
使用主主复制而不是主从复制。让您的客户端写入两个主服务器。读者将连接到任何可用的主服务器。