为什么使用芹菜而不是 RabbitMQ?

根据我的理解,芹菜是一个分布式任务队列,这意味着它唯一应该做的事情就是将任务/作业分派到其他服务器并获得结果。RabbitMQ 是一个消息队列,仅此而已。但是,工作人员可以只监听 MQ,并在接收到消息时执行任务。这正是芹菜所能提供的,那么为什么还需要芹菜呢?

37033 次浏览

芹菜基本上提供了一个很好的界面来完成你所说的,并处理所有的配置为您。是的,你可以用手写,但你只是在重写芹菜。

你说得对,你根本不需要芹菜。当你设计一个分布式系统的时候,有很多选择,没有一种正确的方法可以适合所有的情况。

许多人发现,让消息消费者池等待消息出现在他们的队列中、执行一些工作并在工作完成时发送消息更为灵活。

Celery is a framework that wraps up a whole lot of things in a package but if you don't really need the whole package, then it is better to set up RabbitMQ and implement just what you need without all the complexity. In addition, RabbitMQ can be used in many more scenarios besides the task queue scenario that Celery implements.

但是如果你选择芹菜,那么请三思 RabbitMQ。芹菜的消息排队模型过于简单,它确实比 RabbitMQ 更适合 Redis 之类的东西。Rabbit 有很多选择芹菜基本上都忽略了。

在我看来,与 RabbitMQ 相比,将芹菜与鲜花和其他监控软件包结合起来是很容易的。

It all depends on the use case anyways...

如果您不需要芹菜提供的其他功能,RabbitMQ 将是一个简单的方法。权衡你的选择不会是一个坏主意..。