我有一个生产者,我想通过一致的哈希在消费者之间一致地分配工作。例如,对于消费者节点 X 和 Y,任务 A、B、C 应该总是去消费者 X,而 D、E、F 应该去消费者 Y。但是如果 Z 加入消费者池,这可能会发生一点变化。
我不想编写自己的逻辑来连接到消费者节点,尤其是不想管理加入和离开池的节点,所以我走上了使用 RabbitMQ 的道路,每个消费者节点都有一个独占队列.
我遇到的一个问题是列出这些队列,因为生产者需要在分配工作之前知道所有可用的队列。AMQP 甚至不支持列表队列,这让我不确定我的整个方法。不过,RabbitMQ 和 Alice(目前不完整)添加了该功能:是否有用于在 RabbitMQ 上列出队列和交换的 API?
这是对兔子的明智使用吗?我应该使用消息队列吗?是否有更好的设计让队列可以始终如一地在消费者之间分配我的工作,而不是我需要这样做?