RabbitMQ-交换机(Exchange)

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ(本章节)

前面的内容,我们介绍了虚拟主机(vhost),但是它只是一个逻辑概念,它必须配合对应的交换机(Exchange),队列(Queue),绑定(Binding)才能具体使用,今天我们首先来介绍的是交换机。

交换机(Exchange)

交换机是接收生产者发送消息的组件,它的主要功能是根据特定的规则将消息路由到一个或多个队列中。可以简单的理解消息首先会到交换机,然后才会分发出去,这个和传统的物理交换机实际比较类似。

交换机类型

RabbitMQ 提供了四种主要的交换机类型,每种类型实现了不同的路由算法:

    直连交换机(Direct Exchange):根据消息的路由键(routing key)将消息路由到与之绑定的队列中,绑定键(binding key)和路由键精确匹配时消息才会被路由。这个也是日常使用最多的交换机类型。

    扇形交换机(Fanout Exchange):将接收到的所有消息广播到与之绑定的所有队列中,忽略路由键。

    主题交换机(Topic Exchange):通过消息的路由键和绑定键的模式匹配来决定消息的路由。绑定键可以使用*(匹配一个单词)和#(匹配零个或多个单词)通配符。

    头交换机(Headers Exchange):根据消息的头部信息而非路由键来进行消息路由,绑定规则通过消息头中的键值对来定义。

    交换机属性

    名称:交换机的唯一标识符,在 vhost 内必须唯一。

    持久性(Durable):设置为 true 时,交换机会在 RabbitMQ 服务器重启后仍然存在。

    自动删除(Auto-delete):当所有与之绑定的队列都解除绑定时,交换机将被自动删除。

    内部(Internal):如果设置为 true,则该交换机不能直接接收生产者的消息,只能用于交换机之间的绑定。可以简单理解它只接收其他交换机发过来的信息。

    默认交换机介绍

    每创建一个虚拟主机(vhost),都会默认创建下面的交换机。

    图片

    1.所有交换机都基于虚拟主机(vhost),这里默认都是在根(/)下面。

    2.系统预设了部分交换机,其中第一个是没有指定交换机的的信息会被这个默认交换机收取。

    3.就是前面指定的交换机类型。

    4.“D”代表持久化(重启了还在)“I” 代表不对外

    创建交换机

    图片

    这里实际上就是前面哪些参数,前面提到过交换机具有自动删除就在这里配置,还有是否是内部交换机。Alternate exchange (备用交换机)我们后期讲解死信队列的时候来说。

    创建交换机的时候,选择的虚拟主机必须要有对应的账号权限才可以,比如下图这样的权限,我如果给/test01 虚拟主机(vhost)创建交换机则会拒绝。

    图片

    后面的操作,我们尽量使用页面来完成。

    下图的ceph115就是交换机(Exchange),位于虚拟主机(vhost)/test 下,交换机类型是使用最多的直连交换机(Direct Exchange)。

    图片

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

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

    相关文章

    分类预测 | MATLAB实现DBO-SVM蜣螂算法优化支持向量机分类预测

    分类预测 | MATLAB实现DBO-SVM蜣螂算法优化支持向量机分类预测 目录 分类预测 | MATLAB实现DBO-SVM蜣螂算法优化支持向量机分类预测 分类效果 基本介绍 算法步骤 参数设定 运行环境 应用场景 程序设计 参考资料 分类效果 基本介绍 该MATLAB代码实现了基于蜣螂优化算法(DBO)优…

    变频器实习DAY15

    目录变频器实习DAY15一、工作内容柔性平台常规测试柔性平台STO测试自己犯的一个特别离谱的错STO的功能了解为什么STO的故障叫做基极已封锁二、学习内容2.1 火线接断路器 vs. 接地/悬空的区别小内容分点附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^)变频器实习DAY15 STO 板…

    一文学会c++list

    文章目录list简介list接口迭代器失效🚩模拟实现list简介 1,list是可以在常数时间复杂度任何位置随意插入的序列式容器,可以双向迭代 2,底层是双向链表结构,每个节点都是独立的,通过前后指针链接 3&#xf…

    数据集分享 | 智慧农业实战数据集精选

    【导读】 在智慧农业的发展浪潮下,AI视觉算法正逐步渗透进作物生长监控、病虫害检测、采摘成熟评估等细分任务。相较于工业或城市场景,农业视觉更具挑战性:自然环境复杂、目标形态多变、时空尺度差异大。 为实现精准农业管理,一…

    CCFRec-人大高瓴-KDD2025-序列推荐中充分融合协同信息与语义信息

    文章目录1. 背景与问题2. 方法2.1 多视图 sid2.2 Code-Guided Semantic Fusion核心创新:常规操作:2.3 Enhanced Representation Learning via Code Masking2.3.1 Masked Code Modeling (MCM)2.3.2 Masked Sequence Alignment (MSA)2.4 复杂度分析2.4.1 训…

    Python深入 Tkinter 模块

    目录 一、为什么要写 Tkinter 二、最小可运行示例:Hello World 不是终点,而是起点 三、布局三板斧:pack、grid、place 四、事件与回调:让按钮“响”起来 五、实战案例:秒表 文件批量重命名器 六、样式进阶&…

    LeetCode 面试经典 150_数组/字符串_删除有序数组中的重复项(3_26_C++_简单)

    LeetCode 面试经典 150_删除有序数组中的重复项(3_26_C_简单)题目描述:输入输出样例:题解:解题思路:思路一(双指针):代码实现代码实现(思路一(双指…

    架构篇(一):告别MVC/MVP,为何“组件化”是现代前端的唯一答案?

    架构篇(一):告别MVC/MVP,为何“组件化”是现代前端的唯一答案? 引子:一个困扰前端工程师的“幽灵” 在上一章《序章:抛弃UI,我们来构建一个“看不见”的前端应用》中,我们从零开始构建了一个纯…

    数组内存学习

    一、内存简介:1.内存分为5块:a.栈(Stack)主要运行方法,方法的运行都会进入栈内存运行,云南行完毕之后,需要“弹栈”,为了腾空间。b.堆(Heap)保存的是对象&…

    验证 GitHub Pages 的自定义域(Windows)

    验证 GitHub Pages 的自定义域 您可以通过验证您的域来提高自定义域的安全性并避免接管攻击。 谁可以使用此功能? GitHub Pages 在公共存储库中提供 GitHub Free 和 GitHub Free for organizations,在公共和私有存储库中提供 GitHub Pro、GitHub Team、GitHub Enterprise Cl…

    数字化转型 - 企业数字化建设的几点思考

    关于企业数字化建设的几点思考工业软件领军人才的培训课中,如上的一个PPT,给人以许多反思。一是看企业成功的数字化案例时,也许只看到别人面上的东西,可能还有面下很多看不到的东西支撑着,因此可能只看到或学到别人的皮…

    深入解析Java内存模型:原理与并发优化实践

    深入解析Java内存模型:原理与并发优化实践 技术背景与应用场景 随着多核处理器的普及,Java并发编程已成为后端系统提升吞吐量与响应性能的必备手段。然而,在多线程环境下,不同线程对共享变量的可见性、指令重排以及内存屏障控制都…

    《设计模式之禅》笔记摘录 - 9.责任链模式

    责任链模式的定义责任链模式定义如下:Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects and pass the request along the chain until an object handles it.…

    05-ES6

    数据解构SetES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值Set 本身是一个构造函数,用来生成 Set 数据结构//set集合,成员是唯一的,添加过程中会替换相同的元素。这里相同的标准是const s new S…

    正则表达式 \b:单词边界

    下面举例说明 \b 用法。\b(?:https?://)(\S)\b各部分功能:\b:单词边界,确保匹配的 URL 是独立的单词,不会与其他字符粘连。(?:https?://):非捕获组,匹配 http:// 或 https://(s? 表示 s 可…

    从8h到40min的极致并行优化:Spark小数据集UDTF处理的深度实践与原理剖析

    在大数据领域,Spark以其卓越的并行处理能力著称。但面对小数据集的极致并行需求时,默认优化策略往往成为瓶颈。本文将深入剖析如何通过精准控制分区策略,将仅170条数据的表拆分成170个独立Task并行执行,实现100%的并行度&#xff…

    JAVA算法题练习day1

    开始前: 选择leetcode-hot100。要求每日1道,并且需要亲自二刷昨天的题目(每一种解法),要做解题笔记并发布CSDN,做完立刻二刷。做题时间为每日12:50起,不拖延,这是学习成…

    【Word Press进阶】自定义区块的行为与样式

    前两篇 【Word Press基础】创建自定义区块【Word Press基础】创建一个动态的自定义区块 说明白了怎么创建一个简单的静态区块。但实在是太丑了。这里再进行一个优化,让咱们的区块好看又好用。 一个合格的区块应当有着好看的外表,完整的功能&#xff0…

    Pygame模块化实战:火星救援游戏开发指南

    Pygame模块化实战:火星救援游戏开发指南用Python打造太空探险游戏,掌握模块化开发核心技巧一、火星救援:模块化开发的完美场景​​想象这样的场景​​: 你是一名宇航员,被困在火星表面,需要收集资源、修复飞…

    三维图像识别中OpenCV、PCL和Open3D结合的主要技术概念、部分示例

    文章目录1. 三维点云基础概念点云(Point Cloud)深度图像(Depth Image)体素(Voxel)2. 点云预处理技术去噪滤波(Noise Filtering)降采样(Downsampling)3. 特征提取与描述法向量估计(Normal Estimation)关键点检测(Keypoint Detection)特征描述子(Feature Descriptor)4. 点云配准(…