我原谅我的浅薄知识,但我还没弄清楚为什么我需要3台服务器来管理Redis的故障转移?
我在负载均衡器下为服务器实例提供了一个应用程序,我希望将Redis设置为session&通知管理。
我的要求很简单,我想在两台服务器上安装Redis,并且如果一台服务器出现故障,则会有故障转移计划,这样最终用户就不会受到影响。通知。
我有什么选择?提前谢谢。
答案 0 :(得分:0)
如果你只有两台服务器,那么至少有一个我能想到的问题。 如果主站和从站之间存在网络问题,该怎么办?如果它导致奴隶成为主人,那么你将有两个主人(因为第一个永远不会失败,记住)。这被称为Split Brain Scenario。
为了避免裂脑情况,应该有一个奇数的主人,并在redis-sentinel.conf文件中正确定义仲裁(理想情况下应该是(n + 1)/ 2),即简单多数。
这意味着如果你有3个节点,1个主服务器+ 2个服务器,其仲裁次数为2.如果存在网络错误,那么两个彼此接触的实例将是主服务器(法定人数为2)。
所以,这个想法只是假设没有实例,并且设置了合适的仲裁。
答案 1 :(得分:0)
我最终将Hazelcast用于我的方案,因为如果一次仅一个实例发生故障,它便可以进行故障转移。 如此简单的答案是,如果您只有2个服务器的限制,则使用HAZELCAST。