【发布时间】:2016-04-04 21:58:21
【问题描述】:
您好,我刚刚启动了一个 rails 4 应用程序,它使用 nginx 作为负载平衡器,在 2 个端口上使用瘦服务 rails。此外,我使用 redis 作为缓存,sidekiq 也使用它。
我想知道如何使用另一台机器进行扩展,以便在那里运行另外两个 rails 应用程序。我的想法是在另一台机器上再运行两个 rails 应用程序,但是由于 sidekiq 大量使用它,redis 带来了令人头疼的问题。我的第一个想法是拥有另一个仅在第二台机器上只读的 redis 从站。但这可能很容易出错,因为我有很多写入 redis 以检查工作队列。
下面的场景让我很困惑。 Web 应用程序发出请求并触发 sidekiq 执行长时间运行的操作,它不断更新 redis 中的状态。 Web 客户端每秒轮询应用程序以获取状态。现在,请求可能会被重定向到第二台机器,而该机器的 redis 从站尚未更新。所以我想知道最好的设置是什么,只使用一个考虑延迟的 redis 实例或运行一个 redis 从站?
【问题讨论】:
标签: ruby-on-rails redis sidekiq