1. 简单模式(Simple)
- 特点:一个生产者对应一个消费者,通过队列进行消息传递。使用RabbitMQ的默认交换机(direct类型)进行消息路由。
- 应用场景:适用于简单的消息发送和接收场景,如日志收集、异步通知等。
2. 工作队列模式(Work Queue)
- 特点:一个生产者,多个消费者,每个消费者获取到的消息唯一,多个消费者共享一个队列。通过队列进行消息传递,消息默认采用轮询的方式平均发送给消费者。
- 应用场景:适用于任务过重或任务较多的情况,通过增加消费者数量来提高任务处理的速度。
3. 发布订阅模式(Publish/Subscribe)
- 特点:生产者将消息发送给交换机,交换机将消息转发到绑定此交换机的每个队列中,同一个消息会转给所有的队列。队列中的消息会轮询地分配给队列的消费者。
- 应用场景:适用于需要将消息广播给多个消费者的场景,如电商网站的促销信息需要同时发送短信、邮件和站内信等。
4. 路由模式(Routing)
- 特点:在发布订阅模式的基础上,增加了路由键(RoutingKey)的概念。生产者将带有路由键的消息发送给交换机,交换机根据路由键将消息定向发送到指定的队列中。
- 应用场景:适用于需要将消息发送到特定队列的场景,通过路由键实现消息的精准路由。
5. 通配符模式(Topics)
- 特点:在路由模式的基础上,给队列绑定带通配符的路由键。交换机根据消息的路由键和队列的通配符路由键进行匹配,如果匹配成功,则将消息转发到该队列。
- 应用场景:适用于更复杂的路由场景,如需要根据消息的某些属性将消息发送到不同的队列中。
6. 远程调用模式(RPC,不常用)
- 说明:虽然RabbitMQ支持RPC(远程过程调用)模式,但这不是其主要的消息传递模式,且在实际应用中不常使用。RPC模式更多地是RPC框架(如gRPC、Apache Thrift等)的功能范畴。