Rabbitmq五种模式详解

一、五种模式详解

1.简单模式(Queue模式)

当生产端发送消息到交换机,交换机根据消息属性发送到队列,消费者监听绑定队列实现消息的接收和消费逻辑编写.简单模式下,强调的一个队列queue只被一个消费者监听消费.

1.1 结构

  1. 生产者:生成消息,发送到交换机
  2. 交换机:根据消息属性,将消息发送给队列
  3. 消费者:监听这个队列,发现消息后,获取消息执行消费逻辑

1.2应用场景

常见的应用场景就是一发,一接的结构
例如:

  • 手机短信
  • 邮件单发

2.争抢模式(Work模式)

强调的也是后端队列与消费者绑定的结构

2.1结构

  1. 生产者:发送消息到交换机
  2. 交换机:根据消息属性将消息发送给队列
  3. 消费者:多个消费者,同时绑定监听一个队列,之间形成了争抢消息的效果

2.2应用场景

  1. 抢红包
  2. 资源分配系统

3.路由模式(Route模式 Direct定向)

从路由模式开始,关心的就是消息如何到达的队列,路由模式需要使用的交换机类型就是路由交换机(direct)

3.1 结构

  1. 生产端:发送消息,在消息中处理消息内容,携带一个routingkey
  2. 交换机:接收消息,根据消息的routingkey去计算匹配后端队列的routingkey
  3. 队列:存储交换机发送的消息
  4. 消费端:简单模式 工作争抢

3.2应用场景

  • 短信
  • 聊天工具
  • 邮箱。。

手机号/邮箱地址,都可以是路由key

4.发布订阅模式(Pulish/Subscribe模式 Fanout广播)

不计算路由的一种特殊交换机

4.1结构

4.2应用场景

  • 消息推送
  • 广告

5.主题模式(Topics模式 Tpoic通配符)

路由key值是一种多级路径。中国.四川.成都.武侯区

5.1结构

  1. 生产端:携带路由key,发送消息到交换机

  2. 队列:绑定交换机和路由不一样,不是一个具体的路由key,而可以使用*和#代替一个范围
    | * | 字符串,只能表示一级 |
    | --- | --- |
    | # | 多级字符串 |

  3. 交换机:根据匹配规则,将路由key对应发送到队列

  4. 消息路由key:

    1. 北京市.朝阳区.酒仙桥
    2. 北京市.#: 匹配true
    3. 上海市.浦东区.*: 没匹配false
    4. 新疆.乌鲁木齐.#

5.2 应用场景

  • 做物流分拣的多级传递.

6.完整结构

 

转载:

https://www.cnblogs.com/cgqplus/p/14699747.html

posted @ 2021-08-25 11:02  天健地坤  阅读(1287)  评论(0)    收藏  举报