本篇是针对前面 5 篇 RabbitMQ 博客的总结
hello world: https://blog.csdn.net/u012319493/article/details/98231740
Work queues: https://blog.csdn.net/u012319493/article/details/98240539
Publish/Subscribe: https://blog.csdn.net/u012319493/article/details/98245774
Routing: https://blog.csdn.net/u012319493/article/details/98364985
Topics: https://blog.csdn.net/u012319493/article/details/98368396
- hello world 和 Work queues 使用了没有名称的 exchange,这样可以直接指定 queue。 Work queues 相对于 hello world 主要多了持久化和
channel.basic_qos(prefetch_count=1)
- 后面 3 篇都用了有名称的 exchange,其中,
a. Publish/Subscribe: exchange_type=‘fanout’,生产者发送消息的时候无路由键。消费者不指定队列名称,将临时队列绑定到 exchange 上,没有绑定键。效果:一条消息可同时发到所有绑定的队列。
b. Routing: exchange_type=‘direct’,生产者发送消息的时候有路由键 routing_key。消费者指定队列名称,队列与 exchange 到绑定键为 routing_key。效果:一条消息只发送到绑定键为 routing_key 的队列。
c. Topics: exchange_type=‘topic’,相对于 Routing,routing_key 可以是多个以点分隔的条件。效果:一个队列可接收多种满足条件的消息。
Publish/Subscribe:多对多
Routing:一对多
Topics:多对一