群集故障转移

时间:2014-04-28 14:14:14

标签: redis cluster-computing failover

我知道我正在询问有关群集故障转移的非常明显的事情。

我在redis.io上读到,如果任何主集群节点发生故障,它将影响其他主节点,直到奴隶来负责。在我的结构中,我没有定义任何奴隶,只是与3个主人合作。

我正在考虑修改redis-trib.rb文件,该文件将删除缺陷服务器,并将启动其他2个节点的群集。我对一些事情感到困惑,

1)重新分析

  

在服务器出现故障之前无法实现

2)创建集群的最小3节点限制

  

根据位理解,redis-trib.rb不允许我为两个节点创建集群   代码文件中可能有一些解决方案:)

3)使用实时节点重新创建新结构的自动方式

  

作为程序员的观点,我正在为我的系统自动搜索一些东西。当Redis Cluster失败某些任务时,会触发一个命令。喜欢

     
      
  • 关闭所有其他redis群集服务器
  •   
  • 从所有群集节点文件夹中删除nodes- [port] .conf文件
  •   
  • 启动redis群集服务器
  •   
  • 运行" redis-trib.rb create ip:port ip:port"
  •   

我只想尽量减少管理工作:)。 否则我需要实现一些其他算法" Data Consistency"这里。

如果你们中的任何人有任何解决方案或想法,请分享。

谢谢, Sanjay Mohnani

1 个答案:

答案 0 :(得分:1)

在仅包含主节点的群集中,如果节点发生故障,则数据将丢失。因此,不可能进行重新分片,因为无法将数据(散列槽)迁移出故障节点。

要在主服务器出现故障时保持群集正常工作,您需要从属节点(每个主节点一个)。这样,当主设备发生故障时,其从设备会进行故障转移(成为具有相同数据副本的新主设备)。

redis-trib.rb脚本不能处理少于3个主服务器的集群创建,但在redis-cluster中,集群可以是任意大小(至少一个节点)。

因此,添加从属节点可视为您问题的自动解决方案。