ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 1. 五种工作模式 * [ ] 生产者:复制产生消息,并发送到交换机 * [ ] 交换机:将消息投递到队列 * [ ] 队列:需要和交换机绑定:key或者订阅模式 * [ ] 消费者:从队列中取消息 > 1.生产者的消息都是先到交换机 > 2.交换机在向消费者发消息 ## 1.1 简单工作模式 1. 当生产端发送消息到交换机(默认交换机),交换机根据消息属性发送到队列 2. 消费者监听绑定队列实现消息的接收和消费逻辑编写 3. 简单模式下,强调的一个队列queue只对应一个消费者. 4. 常见的应用场景就是**一发一接**的结构,例如:手机短信邮件单发 ![](https://img.kancloud.cn/71/b8/71b83800c8dc53a292299b40c04a20fd_2004x818.png) ## 1.2 争抢模式(Work模式) 1. 与简单模式基本相同,不同的是一个队列绑定多个消费者 2. 多个消费者争夺消费同一队列中的消息-一个消息最终只能被其中的一个消费者消费 3. 应用场景:抢红包、资源分配系统 ![](https://img.kancloud.cn/3e/c8/3ec82a937247b420ca117003cb54a9b2_2302x926.png) ## 1.3 路由模式 1. 生产端:发送消息,在消息中处理消息内容,携带一个routingkey 2. 交换机:接收消息,根据消息的routingkey去计算匹配后端队列的routingkey 3. 队列:存储交换机发送的消息 4. 消费端:简单模式 工作争抢 5. 交换机类型:direct ![](https://img.kancloud.cn/b6/6d/b66d91cb341bea8951231a169fa22449_3022x1276.png) ![](https://img.kancloud.cn/25/2b/252bb45ff8fcd7045559cc66909d32e3_549x383.png) ## 1.4 发布订阅模式(Pulish/Subscribe模式 Fanout广播) 群发消息到所有队列,队列的多个消费者争抢消费 交换机类型:fanout ![](https://img.kancloud.cn/58/28/5828e9608fad1e33d151d5bb35c83c8c_2690x1290.png) ## 1.5 主题模式(Topics模式 Tpoic通配符) 生产端:携带路由key,发送消息到交换机 队列:绑定交换机和路由不一样,不是一个具体的路由key,而可以使用\*和#代替一个范围 | * | 字符串,只能表示一级 | | --- | --- | | # | 多级字符串 | 交换机:根据匹配规则,将路由key对应发送到队列 消息路由key: * 北京市.朝阳区.酒仙桥 * 北京市.#: 匹配true * 上海市.浦东区.\*: 没匹配false * 新疆.乌鲁木齐.# ![](https://img.kancloud.cn/5e/4f/5e4f8b7de071b90c1ff8ed4cd62c5215_2746x1258.png)