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

RabbitMQ的交换机

一、三种交换机模式

核心区别对比​

​特性​​广播模式(Fanout)​​路由模式(Direct)​​主题模式(Topic)​
​路由规则​无条件复制到所有绑定队列精确匹配 Routing Key通配符匹配 Routing Key*/#
​消息分发​1:N(所有消费者收到相同消息)1:1 或 1:N(相同 Key 的队列)M:N(灵活匹配多个队列)
​典型应用场景​系统通知、多服务数据同步任务分发、精确路由(如支付处理)分类事件(如日志分级、新闻订阅)
​Exchange 类型​Fanout Exchange(RabbitMQ)Direct ExchangeTopic Exchange
​Routing Key​忽略必须完全匹配支持通配符(如 news.*

​2. 详细说明​

​(1) 广播模式(Fanout)​
  • ​核心逻辑​​:
    消息发送到 Fanout Exchange 后,会​​无条件复制到所有绑定的队列​​,消费者订阅不同队列时会收到相同消息。
  • ​示例场景​​:
    • 系统公告:一条消息需同时触发邮件、短信、日志服务。
    • 数据同步:订单创建后广播给库存、物流、分析服务。
  • ​特点​​:
    • 简单粗暴,无过滤逻辑。
    • 性能开销较大(消息全量复制)。
​(2) 路由模式(Direct)​
  • ​核心逻辑​​:
    消息通过精确的 Routing Key 匹配到指定队列,只有绑定相同 Key 的消费者能收到消息。
  • ​示例场景​​:
    • 支付处理:routing_key=payment.success 仅路由到支付服务队列。
    • 任务分发:多个 worker 竞争消费同一队列(工作队列模式)。
  • ​特点​​:
    • 精准控制消息接收方。
    • 灵活性较低(需提前定义 Key)。
​(3) 主题模式(Topic)​
  • ​核心逻辑​​:
    通过通配符(* 匹配一个单词,# 匹配多级)动态匹配 Routing Key,实现灵活的路由。
  • ​示例场景​​:
    • 日志分级:log.error 路由到告警服务,log.info 路由到存储服务。
    • 新闻订阅:用户订阅 news.sports 或 news.weather
  • ​特点​​:
    • 兼顾广播的覆盖范围和路由的精确性。
    • 适合多维度、分层级的消息分类。

​3. 不同消息队列的实现​

​MQ 类型​​广播模式​​路由模式​​主题模式​
​RabbitMQ​Fanout ExchangeDirect ExchangeTopic Exchange
​Kafka​多个 Consumer Group 独立消费单 Partition 或 Key 路由Topic + 通配符订阅
​RocketMQ​广播消费(Broadcasting)Tag 过滤(精确匹配)Tag 过滤(通配符支持)

​4. 如何选择?​

  • ​需要无条件广播?​​ → ​​Fanout​​(如全量数据同步)。
  • ​需要精确路由?​​ → ​​Direct​​(如支付结果处理)。
  • ​需要动态分类?​​ → ​​Topic​​(如日志分级、多维度事件)。

5.java代码实现(生产者)

​总结​

  • ​广播模式​​:简单粗暴,适合全覆盖场景。
  • ​路由模式​​:精准控制,适合点对点或任务分发。
  • ​主题模式​​:灵活匹配,适合复杂分类和订阅需求。

二、RabbitMQ对应的工作模式

​1. 简单模式(Simple)​

  • ​对应机制​​:
    • ​默认直连队列​​(无Exchange),生产者直接发消息到指定队列,单个消费者消费。
    • ​本质​​:最基础的点对点通信。

​2. 工作队列模式(Work Queue)​

  • ​对应机制​​:
    • ​Direct Exchange的简化版​​:多个消费者共享同一队列,消息轮询或竞争消费(仍属于路由模式,但隐式使用队列名作为Routing Key)。
    • ​特点​​:无显式Routing Key,负载均衡分发。

​3. 发布/订阅模式(Pub/Sub)​

  • ​对应机制​​:
    • ​Fanout Exchange​​:消息广播到所有绑定队列,忽略Routing Key。
    • ​特点​​:1:N广播,所有订阅者收到相同消息。

​4. 路由模式(Routing)​

  • ​对应机制​​:
    • ​Direct Exchange​​:消息通过精确匹配Routing Key路由到指定队列。
    • ​特点​​:1:1或1:N(相同Key的队列),精确控制接收方。

​5. 通配符模式(Topics)​

  • ​对应机制​​:
    • ​Topic Exchange​​:通过通配符(*匹配一个词,#匹配多级)动态匹配Routing Key。
    • ​特点​​:灵活分类,如 news.sports 或 weather.*

​三、总结对应关系​

​模式名称​​对应Exchange类型​​Routing Key规则​​分发逻辑​
简单模式(无,直连队列)队列名作为隐式Key1:1点对点
工作队列模式Direct(隐式)队列名作为隐式Key1:N竞争消费
发布/订阅模式Fanout忽略1:N广播
路由模式Direct精确匹配1:1或1:N(相同Key)
通配符模式Topic*#通配符M:N动态匹配

相关文章:

  • 【阿里云大模型高级工程师ACP习题集】2.9 大模型应用生产实践(上篇)
  • 超长8分钟Suno V4.5 – 支持一首歌多风格转换啦~~~
  • Nginx部署Vue+ElementPlus应用案例(基于腾讯云)
  • PDF转换工具xpdf-tools-4.05
  • 敏感词 v0.25.0 新特性之 wordCheck 策略支持用户自定义
  • 【安装指南】Chat2DB-集成了AI功能的数据库管理工具
  • 论文阅读笔记——TesserAct: Learning 4D Embodied World Models
  • 【安装指南】Centos7 在 Docker 上安装 RabbitMQ4.0.x
  • 【无需docker】mac本地部署dify
  • AI Rack架构高速互连的挑战:损耗设计与信号完整性的设计框架
  • 在运行 Hadoop 作业时,遇到“No such file or directory”,如何在windows里打包在虚拟机里运行
  • 计算机网络 - stp生成树实验
  • 【现代深度学习技术】现代循环神经网络03:深度循环神经网络
  • MCP 探索:微软 Microsoft MarkItDown MCP ,可把 Word、Excel 等转换成 MarkDown 格式
  • sys目录介绍
  • 基于YOLOV5的目标检测识别
  • 多模态人工智能研究:视觉语言模型的过去、现在与未来
  • 【Git】万字详解 Git 的原理与使用(上)
  • 第 13 届蓝桥杯 C++ 青少组省赛中 / 高级组 2022 年真题
  • 【东枫电子】AMD / Xilinx Alveo™ UL3422 加速器
  • 11家券商一季度净利翻番:9家利润超20亿,国泰海通居首
  • 刘洪洁已任六安市委副书记、市政府党组书记
  • 五一去哪儿|外国朋友来中国,“买买买”成为跨境旅游新趋势
  • 金砖国家外长会晤落幕,外交部:发出了反对单边霸凌行径的“金砖声音”
  • 青海省林业和草原局副局长旦增主动投案,正接受审查调查
  • 餐饮店直播顾客用餐,律师:公共场所并非无隐私,需对方同意