在使用Resque时,任何人都可以了解GitHub如何处理Redis服务器的潜在故障或暂时不可用?
还有其他人似乎将半复杂的解决方案放在一起,作为使用zookeeper的redis-cluster的保留(参见https://github.com/ryanlecompte/redis_failover和Solutions for resque failover redis)。其他人似乎有“糟糕的故障转移”,在第一次看到连接问题时将奴隶切换到主设备而没有redis客户端之间的协调(但这在临时不可用情况下似乎有问题)。
问题:Defunkt曾经谈过GitHub如何处理Redis失败?是否存在不涉及zookeeper的故障转移的最佳实践?
关于resque的原始帖子表明Redis的选择理性的一部分是redis的主从功能,但该帖没有描述GitHub如何利用这一点,因为所有工作者都需要对Redis的读写访问权限(见https://github.com/blog/542-introducing-resque)。
答案 0 :(得分:1)
基础Resque库不处理故障。如果弹出消息后盒子立即死亡,则消息将永远消失。你必须编写自己的代码来处理失败,这非常棘手。