小编dim*_*ots的帖子

Rails、RabbitMQ 和 Sidekiq 架构

我有一个非常微不足道的 - 我猜 - 情况,以及几个实现选择。我有一个 Rails 应用程序(称为 Core),它根据用户请求从 Internet 抓取数据。爬虫没有任何业务逻辑 - 至少现在 - 但是获取和持久化数据是一项需要时间的工作,我不希望它被阻塞。

我考虑过不同的架构,但是我不确定当事情扩大时哪一个最有效。选项:

  1. Sidekiq:每次用户请求抓取数据时,Sidekiq 中的后台作业就会生成并抓取数据,将它们持久化并完成工作。这里可能的缺点是我不会为 Sidekiq Pro 版本付费,我不确定 OSS 版本是否适合我的需求。
  2. RabbitMQ:在 Rails 中开发一个微服务,我们称之为 Fetcher,它将从 RabbitMQ 消费并获取和持久化数据。我不明白在这种情况下我是否也需要后台处理,所以还是 Sidekiq(或 Sneakers)。如果我这样做,使用消息代理(在这种情况下)而不是让 Sidekiq 在同一应用程序中进行后台处理有什么好处?

ruby ruby-on-rails rabbitmq sidekiq microservices

3
推荐指数
1
解决办法
1741
查看次数

标签 统计

microservices ×1

rabbitmq ×1

ruby ×1

ruby-on-rails ×1

sidekiq ×1