您好我刚刚推出了一个rails 4应用程序,该应用程序使用nginx作为负载均衡器,在2个端口上使用瘦服务轨道。另外我使用redis作为缓存,也被sidekiq使用。
我想知道如何使用其他计算机进行扩展以在那里运行另外两个rails应用程序。我的想法是在另一台机器上运行另外两个rails应用程序,但由于sidekiq正在大量使用它,因此头痛带来了redis。我的第一个想法就是拥有另一个redis slave,它只能在第二台机器上读取。但是这可能容易出错,因为为了检查工作队列,我有很多写入redis的信息。
以下场景让我感到困惑。 Web应用程序发出请求并触发执行长时间运行的sidekiq,它会不断更新redis中的状态。 Web客户端每秒轮询应用程序以获取状态。现在,有可能将请求重定向到第二台机器,而redis slave尚未更新。所以我想知道如何最好的设置,只使用一个redis实例考虑延迟或运行redis slave?
答案 0 :(得分:3)
你有两台机器:
现在您在MachineA上安装redis并将Sidekiq指向MachineA for Redis。 Sidekiqs都会在MachineA上与Redis交谈。有关详细信息,请参阅Using Redis。
附注:redis slave对于只读调试很有用,但对于缩放Sidekiq并不是很有用。