Celery:什么时候应该选择Redis作为消息代理而不是RabbitMQ?

crcmnpdw  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(2)|浏览(225)

我的粗略理解是,如果你需要内存中的键值存储特性,Redis会更好,但是我不确定这与分发任务有什么关系?
这是否意味着我们应该使用Redis作为一个消息代理,如果我们已经在使用它做其他事情?

kxe2p93d

kxe2p93d1#

我最近(2017-2018)都用过了,它们在Celery 4上都非常稳定。所以你可以根据你的主机设置的细节来选择。

  • 如果你必须使用celery 版本2或版本3,那就用RabbitMQ。否则...
  • 如果你是因为其他原因使用Redis,那就选择Redis
  • 如果你在AWS托管,那么就使用Redis,这样你就可以使用托管的Redis作为服务
  • 如果你讨厌复杂的安装,那就选择Redis
  • 如果您已经安装了RabbitMQ,请继续使用RabbitMQ

在过去,我会推荐RabbitMQ,因为它比Redis更稳定,更容易在Celery上安装,但我不再相信这是真的了。

2019年更新

AWS现在有了一个与RabbitMQ相当的托管服务,叫做Amazon MQ,它可以减少在生产中将其作为服务运行的麻烦。如果您有任何使用此服务和celery的经验,请在下面发表评论。

jdg4fx2g

jdg4fx2g2#

Redis代理在不同的队列之间以公平的循环方式将任务分配给工人。Rabbit总是先进先出。对我来说,公平的循环是更好的,我尝试了两种方法。Rabbit似乎更稳定一些。

相关问题