【发布时间】:2014-06-14 03:19:58
【问题描述】:
我知道我问的是关于集群故障转移的一些非常明显的问题。
我在 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”
我只是想尽量减少管理工作:)。 否则我需要在这里实现一些其他的算法“数据一致性”。
如果你们有任何解决方案或想法,请分享。
谢谢, 桑杰·莫哈尼
【问题讨论】:
-
我不清楚您究竟希望使用 Redis Cluster 完成什么。你追求高可用性吗?如果你通过集群运行分片并丢失一个没有从属的节点,那么数据就消失了。如果您不担心丢失数据,为什么还要运行 Cluster?对于 HA,您可以简单地运行带有故障转移的主/从。
-
我们正在搜索类似于 Memcached 的分布式系统。我们使用 redis 是因为它有大量的存储类型(字符串、哈希、集合等)。所以我们需要分布式但不是单点故障类型的东西。希望它对你有意义。
标签: redis cluster-computing failover