【问题标题】:Rails 4.2 load balancing with nginx redis and sidekiqRails 4.2 使用 nginx redis 和 sidekiq 进行负载平衡
【发布时间】: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


    【解决方案1】:

    你有两台机器:

    1. MachineA 瘦身和sidekiq。
    2. MachineB 瘦身和sidekiq。

    现在您在 MachineA 上安装 redis,并将 Sidekiq 指向 MachineA 以用于 Redis。两个 Sidekiq 都将在 MachineA 上与 Redis 对话。详情请参阅Using Redis

    附注:redis slave 对只读调试很有用,但对扩展 Sidekiq 没有用。

    【讨论】:

    • 哦,迈克,我没想到会直接从您那里得到答复。太好了,因为您最了解;)实际上您的解决方案也是我想到的解决方案。唯一让我感到不舒服的是延迟,因为我在虚拟机上运行。
    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多