芹菜广播与RabbitMQ粉丝

Bor*_*kov 10 rabbitmq celery

我最近一直在和Celery合作,我不喜欢它.它的配置很混乱,过于复杂且记录不完整.

我想用Celery从单个生产者向多个消费者发送广播消息.令我困惑的是Celery术语与底层传输RabbitMQ的术语之间的差异.

在RabbitMQ中,您可以使用单个扇出Exchange和多个队列来广播消息:

在此输入图像描述

但是在Celery中,术语都搞砸了:在这里你可以有一个广播队列,它向多个消费者发送消息:

在此输入图像描述

我甚至不了解,Celery广播队列应该如何工作,导致具有多个消费者的RabbitMQ队列用于负载平衡.因此,在RabbitMQ中,如果多个消费者(即消费者池)连接到同一队列,则只有一个消费者将接收和处理消息,这在RabbitMQ文档中称为循环.

此外,关于广播的Celery文档确实不够.我应该为广播队列指定什么类型的RabbitMQ交换,扇出与否?你能提供一个完整的例子吗?

所以,我要求的是(1)澄清Celery中广播队列的概念和实现,以及(2)广播队列配置的完整示例.谢谢.

Ane*_*pic 2

这有帮助吗?
http://celery.readthedocs.org/en/latest/userguide/routing.html#exchanges-queues-and-routing-keys

Celery 中的“队列”定义似乎包括交换,因此您可以在Exchange('fanout')交换类型之上定义一个 Celery 队列,该队列将具有多个 RabbitMQ 队列的底层实现。

在这种情况下,我猜你不希望 Celery 配置中出现“广播”队列,除非你确实希望多个工作人员处理同一任务。