我想用 AMQP 做一些路由魔术。我的设置是 Python 与 Pika 在消费者/生产者端和 RabbitMQ 用于 AMQP 服务器。
我想达到的目标:
- 向单个交换机发送消息
- (在这里插入魔法)
像这样消费消息:
- 一组订阅者应该能够根据路由键进行检索
一组订阅者应该只收到所有消息。
棘手的部分是,如果第二组中的任何服务器已收到消息,则第二组中的其他服务器将不会收到该消息。第一组中的所有服务器应该仍然能够使用此消息。
这是否可以通过单个basic_publish
呼叫实现,或者我是否需要将消息发送到路由交换(对于第一组消费者)并发送到第二组消费者的“全局”交换?
澄清:
我想要实现的是一次调用来发布一条消息并让它被 2 组不同的消费者接收。
案例1:只接收基于路由键的消息(即带有路由键的消息
foo
将被当前对该主题感兴趣的所有消费者接收)案例 2:这基本上类似于RabbitMQ Tutorial for Worker Queues。有许多工人将接收以循环方式发送的消息。只有一个工人会收到一条消息
尽管如此,对某个路由密钥感兴趣的消费者收到的消息应该与工作人员收到的消息完全相同,由单个 API 调用产生。
(希望我的问题有意义我不太熟悉 AMQP 术语)