一、RabbitMQ的架构图
- Broker = MQ 服务器:消息中转站。
- VirtualHost:虚拟主机,具备隔离效果的一个空间,一个MQ有多个VirtualHost空间。
- exchange:交换机,判断并分配消息的路由到各个队列中。
- queue:队列,是可以存储消息的容器。
- Publisher:消息生产者,用来生产与发送消息的角色。
- Consumer:消息消费者,用来接收、消费消息的角色。
二、RabbitMQ的五种模式及其能够达到的效果
1、简单模式 Simple.queues
一条龙服务:生产者P 直接生产发送消息,储存到队列Q 中,最终由消费者C 接收消费消息。
2、工作队列模式 Work.Queues
一个供应商,多个消费者:生产者P 直接生产发送消息,储存到队列Q 中,最终被多个消费者C 接收消费消息。
多个消费者C 之间是平等的竞争关系。
3、发布订阅模式 Publish/Subscribe
无条件路由群发:管控台创建两个队列Q ,一个交换机X,并绑定交换机与队列。
生产者P 生产发送消息到交换机X中,交换机X判断并分配消息给不同的队列Q1、Q2 进行储存,最终被对应队列的消费者C1、C2 接收消费消息。
X-->Q 无路由规则:交换机类型为 fanout,表示为扇出,其实就是无条件群发。
4、路由模式 Routing
精准路由定位:交换机X 到队列Q 的过程,有精确的路由规则-->交换机X 到队列Q 的路由规则有a、b、c,只要路由匹配,就会将消息储存到对应的队列Q 中,再给消费者。
5、Topic模式 Topics
模糊路由匹配:交换机X 到队列Q 的过程,有模糊的路由规则-->* 和 # 代表占位符,可以进行模糊匹配。
图中的交换机X 到队列Q 的路由规则有 .a. 和..b 以及 c.# ,假设此时从交换机X 到队列Q 有一路径为 c.a.b,那么三个路由均可通过。其中,X 到Q2 有两条路径匹配,消息只会走其中一条路径,Q2中只储存一条该消息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。