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)​

  • ​对应机制​​:
    • 交换机类型​​:默认使用​​默认交换机("",无名交换机)​​,类型为direct
    • ​特点​​:生产者直接将消息发送到队列(通过默认交换机绑定队列),消费者从队列中读取消息。
    • ​关系​​:无需显式声明交换机,消息通过队列名直接路由(routing_key = 队列名)。

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

  • ​对应机制​​:
    • 交换机类型​​:同样使用​​默认交换机​​(direct)。
    • ​特点​​:多个消费者共享一个队列,消息以轮询(Round-Robin)或公平分发的方式分配给消费者。
    • ​关系​​:与简单模式类似,但通过多个消费者实现负载均衡。交换机类型不直接影响分发逻辑(由队列自身管理)。

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

  • ​对应机制​​:
    • 交换机类型​​:必须使用​fanout交换机​​。
    • ​特点​​:消息会被广播到所有绑定的队列(每个队列的消费者都会收到相同消息)。
    • ​关系​​:fanout交换机忽略routing_key,直接将消息复制到所有绑定的队列,实现广播。

​4. 路由模式(Routing)​

  • ​对应机制​​:
    • 交换机类型​​:必须使用​direct交换机​​。
    • ​特点​​:消息根据routing_key精确匹配队列,只有匹配的队列会接收消息。
    • ​关系​​:direct交换机通过routing_key的完全匹配决定消息路由,适合定向分发。

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

  • ​对应机制​​:
    • 交换机类型​​:必须使用​topic交换机​​。
    • ​特点​​:消息根据routing_key的模式匹配(支持通配符*#)分发到队列。
    • ​关系​​:topic交换机通过灵活的路由规则实现部分匹配,适合多维度条件路由。

​三、总结对应关系​

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/904527.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/904527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(2025,AR,NAR,GAN,Diffusion,模型对比,数据集,评估指标,性能对比)文本到图像的生成和编辑:综述

【本文为我在去年完成的综述,因某些原因未能及时投稿,但本文仍能为想要全面了解文本到图像的生成和编辑的学习者提供可靠的参考。目前本文已投稿 ACM Computing Surveys。 完整内容可在如下链接获取,或在 Q 群群文件获取。 中文版为论文初稿&…

MCU怎么运行深度学习模型

Gitee仓库 git clone https://gitee.com/banana-peel-x/freedom-learn.git项目场景: 解决面试时遗留的问题,面试官提了两个问题:1.单片机能跑深度学习的模型吗? 2.为什么FreeRTOS要采用SVC去触发第一个任务,只用Pend…

多模态学习(一)——从 Image-Text Pair 到 Instruction-Following 格式

前言 在多模态任务中(例如图像问答、图像描述等),为了使用指令微调(Instruction Tuning)提升多模态大模型的能力,我们需要构建成千上万条**指令跟随(instruction-following)**格式的…

MySQL基础关键_011_视图

目 录 一、说明 二、操作 1.创建视图 2.创建可替换视图 3.修改视图 4.删除视图 5.对视图内容的增、删、改 (1)增 (2)改 (3)删 一、说明 只能将 DQL 语句创建为视图;作用: …

『深夜_MySQL』数据库操作 字符集与检验规则

2.库的操作 2.1 创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification]….]create_spcification:[DEFAULT] CHARACTER SET charset_nam[DEFAULT] COLLATE collation_name说明: 大写的表示关键字 …

Spark jdbc写入崖山等国产数据库失败问题

随着互联网、信息产业的大发展、以及地缘政治的变化,网络安全风险日益增长,网络安全关乎国家安全。因此很多的企业,开始了国产替代的脚步,从服务器芯片,操作系统,到数据库,中间件,逐步实现信息技术自主可控,规避外部技术制裁和风险。 就数据库而言,目前很多的国产数据…

数字化转型-4A架构之应用架构

系列文章 数字化转型-4A架构(业务架构、应用架构、数据架构、技术架构)数字化转型-4A架构之业务架构 前言 应用架构AA(Application Architecture)是规划支撑业务的核心系统与功能模块,实现端到端协同。 一、什么是应…

格雷狼优化算法`GWO 通过模拟和优化一个信号处理问题来最大化特定频率下的功率

这段代码是一个Python程序,它使用了多个科学计算库,包括`random`、`numpy`、`matplotlib.pyplot`、`scipy.signal`和`scipy.signal.windows`。程序的主要目的是通过模拟和优化一个信号处理问题来最大化特定频率下的功率。 4. **定义类`class_model`**: - 这个类包含了信号…

中级网络工程师知识点1

1.1000BASE-CX:铜缆,最大传输距离为25米 1000BASE-LX:传输距离可达3000米 1000BASE-ZX:超过10km 2.RSA加密算法的安全性依赖于大整数分解问题的困难性 3.网络信息系统的可靠性测度包括有效性,康毁性,生存性 4.VLAN技术所依据的协议是IEEE802.1q IEEE802.15标准是针…

2025年五一数学建模A题【支路车流量推测】原创论文讲解

大家好呀,从发布赛题一直到现在,总算完成了2025年五一数学建模A题【支路车流量推测】完整的成品论文。 给大家看一下目录吧: 摘 要: 一、问题重述 二.问题分析 2.1问题一 2.2问题二 2.3问题三 2.4问题四 2.5 …

性能优化实践:渲染性能优化

性能优化实践:渲染性能优化 在Flutter应用开发中,渲染性能直接影响用户体验。本文将从渲染流程分析入手,深入探讨Flutter渲染性能优化的关键技术和最佳实践。 一、Flutter渲染流程解析 1.1 渲染流水线 Flutter的渲染流水线主要包含以下几…

linux基础学习--linux磁盘与文件管理系统

linux磁盘与文件管理系统 1.认识linux系统 1.1 磁盘组成与分区的复习 首先了解磁盘的物理组成,主要有: 圆形的碟片(主要记录数据的部分)。机械手臂,与在机械手臂上的磁头(可擦写碟片上的内容)。主轴马达,可以转动碟片,让机械手臂的磁头在碟片上读写数据。 数据存储…

DIFY教程第五弹:科研论文翻译与SEO翻译应用

科研论文翻译 我可以在工作流案例中结合聊天大模型来实现翻译工具的功能,具体的设计如下 在开始节点中接收一个输入信息 content 然后在 LLM 模型中我们需要配置一个 CHAT 模型,这里选择了 DeepSeek-R1 64K 的聊天模型,注意需要在这里设置下…

【Redis】哨兵机制和集群

🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 一、哨兵机制 Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工的进行主从切换,同时需要大量的客户端需要被通知切换到…

注意力机制(Attention)

1. 注意力认知和应用 AM: Attention Mechanism,注意力机制。 根据眼球注视的方向,采集显著特征部位数据: 注意力示意图: 注意力机制是一种让模型根据任务需求动态地关注输入数据中重要部分的机制。通过注意力机制&…

解锁 AI 生产力:Google 四大免费工具全面解析20250507

🚀 解锁 AI 生产力:Google 四大免费工具全面解析 在人工智能迅猛发展的今天,Google 推出的多款免费工具正在悄然改变我们的学习、工作和创作方式。本文将深入解析四款代表性产品:NotebookLM、Google AI Studio、Google Colab 和 …

知识图谱:AI大脑中的“超级地图”如何炼成?

人类看到“苹果”一词,会瞬间联想到“iPhone”“乔布斯”“牛顿”,甚至“维生素C”——这种思维跳跃的背后,是大脑将概念连结成网的能力。而AI要模仿这种能力,需要一张动态的“数字地图”来存储和链接知识,这就是​知识…

Win11 24H2首个热补丁下周推送!更新无需重启

快科技5月7 日消息,微软宣布,Windows 11 24H2的首个热补丁更新将于下周通过Patch Tuesday发布,将为管理员带来更高效的安全更新部署方式,同时减少设备停机时间。 为帮助IT管理员顺利过渡到热补丁模式,微软还提供了丰富…

【Python类(Class)完全指南】面向对象编程入门

目录 🌟 前言🧩 技术背景与价值🚧 当前技术痛点🛠️ 解决方案概述👥 目标读者说明 📚 一、技术原理剖析🎨 核心概念图解💡 核心作用讲解 💻 二、实战演示🛠️…

全自动舆情监控系统实现方案

想要通过代码实现全自动的全网舆情监控,还要用代理来辅助。全自动的话,可能是指从数据抓取、处理到分析都不需要人工干预。全网舆情监控意味着要覆盖多个平台,比如新闻网站、社交媒体、论坛等等。代理的使用可能是为了绕过反爬虫机制&#xf…