当前位置: 首页 > news >正文

RabbitMQ的几个模式

const MQURL = "amqp://kuteng:kuteng@127.0.0.1:5672/kuteng"
解释:amqp://事固定参数后面两个是用户名、密码、ip地址、端口号、Virtual Host

RabbitMQ相关模式:

*1.Routing模式(路由模式,一个消息被多个消费者获取,并且消息的目标队列可被生产者指定)

  • 消息生产者将消息发送给交换机按照路由判断,路由是字符串(info) 当前产生的消息携带路由字符(对象的方法),交换机根据路由的key,只能匹配上路由key对应的消息队列,对应的消费者才能消费消息;

实现过程:

  生产者将消息发送给交换机->交换机根据路由key匹配到对应的消息队列->对应队列的消费者消费消息

消费(接收消息):

先创建交换机(没有的话)->创建队列(没有的话)->绑定队列到交换机中->消费消息

2.Publish模式(订阅模式,消息被路由投递给多个队列,一个消息被多个消费者获取)

  • X代表交换机rabbitMQ内部组件,erlang 消息产生者是代码完成,代码的执行效率不高,消息产生者将消息放入交换机,交换机发布订阅把消息发送到所有消息队列中,对应消息队列的消费者拿到消息进行消费

   实现过程:

   生产者将消息放入交换机中->交换机把消息发送到所有消息队列->对应消息队列的消费者拿到消息消费

  • 相关场景:邮件群发,群聊天,广播(广告)

3.Topic模式(话题模式,一个消息被多个消费者获取,消息的目标queue可用BindingKey以通配符,(#:一个或多个词,*:一个词)的方式指定

  • 星号井号代表通配符
  • #代表多个单词,*代表一个单词
  • 路由功能添加模糊匹配

实现过程:

生产者把消息发送给交换机->交换机根据key的规则模糊匹配到对应队列->对应队列的消费者拿到消息消费

4.Work模式(工作模式,一个消息只能被一个消费者获取)

​​​​​​​

  • 消息产生者将消息放入队列消费者可以有多个,消费者1,消费者2,同时监听同一个队列,消息被消费?C1 C2共同争抢当前的消息队列内容,谁先拿到谁负责消费消息(隐患,高并发情况下,默认会产生某一个消息被多个消费者共同使用,可以设置一个开关(syncronize,与同步锁的性能不一样) 保证一条消息只能被一个消费者使用)
应用场景:红包;大项目中的资源调度(任务分配系统不需知道哪一个任务执行系统在空闲,直接将任务扔到消息队列中,空闲的系统自动争抢)

5.Simple模式:

实现过程:生产者将消息放入队列->消费者监听队列->有消息则消费(消息被拿走后自动从队列中删除)

(隐患 消息可能没有被消费者正确处理,已经从队列中消失了,造成消息的丢失)

应用场景:聊天(中间有一个过度的服务器;p端,c端)

http://www.lryc.cn/news/587637.html

相关文章:

  • Redis单线程详解
  • Advanced Database Systems: History of Databases
  • 代数基本定理最简短的证明
  • C++ 中常见的字符串定义方式及其用法
  • 正运动与您相聚2025青岛国际工业自动化技术及装备展览会!
  • 前端字体使用操作
  • YOLOv11调参指南
  • 管程! 解决互斥,同步问题的现代化手段(操作系统os)
  • Linux操作系统从入门到实战(八)详细讲解编译器gcc/g++编译步骤与动静态库链接
  • Rocket常见问题及解决方案
  • H2 与高斯数据库兼容性解决方案:虚拟表与类型处理
  • 第12章:【系统架构设计师】系统架构设计-数据流风格
  • Oracle中的INSTR函数
  • 衡石科技技术手册--仪表盘过滤控件详解
  • 空间智能-李飞飞团队工作总结(至2025.07)
  • Spring Cloud分布式配置中心:架构设计与技术实践
  • 2025前端面试题
  • (懒人救星版)CNN_Kriging_NSGA2_Topsis(多模型融合典范)深度学习+SCI热点模型+多目标+熵权法 全网首例,完全原创,早用早发SCI
  • 【前端:Typst】--let关键字的用法
  • ethers.js-5–和solidity的关系
  • Popover API 实战指南:前端弹层体验的原生重构
  • 七、深度学习——RNN
  • C语言-流程控制
  • 详解从零开始实现循环神经网络(RNN)
  • 使用 keytool 在服务器上导入证书操作指南(SSL 证书验证错误处理)
  • kafka的部署
  • Android系统的问题分析笔记 - Android上的调试方式 bugreport
  • 论文阅读:WildGS-SLAM:Monocular Gaussian Splatting SLAM in Dynamic Environments
  • 深入浅出Kafka Consumer源码解析:设计哲学与实现艺术
  • Angular 框架下 AI 驱动的企业级大前端应用开