头图

一、RabbitMQ的架构图

RabbitMQ框架流程图

  1. Broker = MQ 服务器:消息中转站。
  2. VirtualHost:虚拟主机,具备隔离效果的一个空间,一个MQ有多个VirtualHost空间。
  3. exchange:交换机,判断并分配消息的路由到各个队列中。
  4. queue:队列,是可以存储消息的容器。
  5. Publisher:消息生产者,用来生产与发送消息的角色。
  6. 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

Topic模式
模糊路由匹配:交换机X 到队列Q 的过程,有模糊的路由规则-->* 和 # 代表占位符,可以进行模糊匹配。
图中的交换机X 到队列Q 的路由规则有 .a...b 以及 c.# ,假设此时从交换机X 到队列Q 有一路径为 c.a.b,那么三个路由均可通过。其中,X 到Q2 有两条路径匹配,消息只会走其中一条路径,Q2中只储存一条该消息。


玉喵
1 声望2 粉丝

学习成长的鸡肋 好好好不积累要鸡肋


引用和评论

0 条评论