【问题标题】:Sidekiq remote server setupSidekiq 远程服务器设置
【发布时间】:2016-03-15 19:40:24
【问题描述】:

我想在不同的服务器上远程运行 sidekiq 工作程序以分散负载。找不到任何文档。我在官方的 sidekiq 文档中找不到任何内容,我曾尝试在谷歌中搜索“sidekiq 远程服务器”、“sidekiq 远程工作人员”……,但找不到任何有用的东西。 这是我想要做的

我的问题是:我是否需要将与生产服务器上相同的应用程序代码复制到所有 Sidekicks 服务器?如何配置 sidekiq 以这种方式工作或阅读有关此类配置的哪些文档或资源?感谢大家提供任何类型的帮助!

【问题讨论】:

    标签: ruby-on-rails sidekiq


    【解决方案1】:

    第一季度。我是否需要将与生产服务器上相同的应用程序代码复制到所有 Sidekicks 服务器?
    答:是的

    第二季度。如何配置 Sidekiq 以这种方式工作或阅读哪些文档或资源来了解此类配置?
    答:您需要将 Sidekiq 连接到一个普通的 Redis 服务器。假设您的 Sidekiq 工作人员连接到服务器上的 Redis 服务器,例如 R。然后,当您将任何作业排队时,您需要配置 Sidekiq gem 以连接到服务器 R 上的 Redis。

    要配置您的 Sidekiq 以使用您可以使用的外部服务器

    Sidekiq.configure_server do |config|
      config.redis = { url: 'redis://redis.example.com:7372/12' }
    end
    

    您可以查看documentation 了解更多详情。

    核心理念是,您需要一个公共数据库服务器,每个 Sidekiq 工作人员和队列都将连接到该服务器。

    【讨论】:

    • 在这种情况下,您不会面临任何重复作业,因为所有 sidekiq 进程都在尝试读取和写入同一个数据库。
    • @Sai 没有。在 Redis 上执行的操作是原子的。
    【解决方案2】:

    第一个问题 - Sidekiq 需要应用程序代码来完成其工作,因此您需要确保将其复制到每个任务服务器上。

    Configuring the Sidekiq is pretty simple,但是设置这些服务器会有点复杂。我个人喜欢Amazon's Opsworks 这种堆栈,我使用this Chef recipe 来配置每台运行Sidekiq 的机器。 (我使用 Monit 来保持它运行,这就是为什么我将其标记为特定于 Monit 的配方。)

    如果您能提供更多关于您的首选部署和托管选择的信息,我们可能会为您提供更详细的回复。祝你好运。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      相关资源
      最近更新 更多