一、五种模式详解
1.简单模式(Queue模式)
当生产端发送消息到交换机,交换机根据消息属性发送到队列,消费者监听绑定队列实现消息的接收和消费逻辑编写.简单模式本文来源gao.dai.ma.com搞@代*码(网$下,强调的一个队列queue只被一个消费者监听消费.
1.1 结构
生产者:生成消息,发送到交换机交换机:根据消息属性,将消息发送给队列消费者:监听这个队列,发现消息后,获取消息执行消费逻辑
1.2应用场景
常见的应用场景就是一发,一接的结构
例如:
手机短信邮件单发
2.争抢模式(Work模式)
强调的也是后端队列与消费者绑定的结构
2.1结构
生产者:发送消息到交换机交换机:根据消息属性将消息发送给队列消费者:多个消费者,同时绑定监听一个队列,之间形成了争抢消息的效果
2.2应用场景
- 抢红包
- 资源分配系统
3.路由模式(Route模式 Direct定向)
从路由模式开始,关心的就是消息如何到达的队列,路由模式需要使用的交换机类型就是路由交换机(direct)
3.1 结构
- 生产端:发送消息,在消息中处理消息内容,携带一个routingkey
- 交换机:接收消息,根据消息的routingkey去计算匹配后端队列的routingkey
- 队列:存储交换机发送的消息
- 消费端:简单模式 工作争抢
3.2应用场景
- 短信
- 聊天工具
- 邮箱。。
手机号/邮箱地址,都可以是路由key
4.发布订阅模式(Pulish/Subscribe模式 Fanout广播)
不计算路由的一种特殊交换机
4.1结构
4.2应用场景
- 消息推送
- 广告
5.主题模式(Topics模式 Tpoic通配符)
路由key值是一种多级路径。中国.四川.成都.武侯区
5.1结构
生产端:携带路由key,发送消息到交换机
队列:绑定交换机和路由不一样,不是一个具体的路由key,而可以使用*和#代替一个范围
| * | 字符串,只能表示一级 |
| — | — |
| # | 多级字符串 |
交换机:根据匹配规则,将路由key对应发送到队列
消息路由key:
- 北京市.朝阳区.酒仙桥
- 北京市.#: 匹配true
- 上海市.浦东区.*: 没匹配false
- 新疆.乌鲁木齐.#
5.2 应用场景
做物流分拣的多级传递.
6.完整结构
二、代码实现
1.创建SpringBoot工程
1.1 工程基本信息
1.2 依赖信息