交换机与队列的介绍

1.流程
首先先介绍一个简单的一个消息推送到接收的流程,提供一个简单的图
在这里插入图片描述

黄色的圈圈就是我们的消息推送服务,将消息推送到 中间方框里面也就是 rabbitMq的服务器,然后经过服务器里面的交换机、队列等各种关系(后面会详细讲)将数据处理入列后,最终右边的蓝色圈圈消费者获取对应监听的消息。
2. 交换机类型(面试题)
常用的交换机有以下三种,因为消费者是从队列获取信息的,队列是绑定交换机的,所以对应的消息推送/接收模式也会有以下几种:
1、Direct Exchange
直连型交换机,根据消息携带的路由键将消息投递给对应队列。
大致流程,有一个队列绑定到一个直连交换机上,同时赋予一个路由键 routing key 。
然后当一个消息携带着路由值为abc,这个消息通过生产者发送给交换机时,交换机就会根据这个路由值abc去寻找绑定值的队列。
2、Fanout Exchange
扇型(广播)交换机,这个交换机没有路由键概念,就算你绑了路由键也是无视的。 这个交换机在接收到消息后,会直接转发到绑定到它上面的所有队列。
3、Topic Exchange
主题交换机,这个交换机其实跟直连交换机流程差不多,但是它的特点就是在它的路由键和绑定键之间是有规则的。
简单地介绍下规则:

  • (星号) 用来表示一个单词 (必须出现的)

(井号) 用来表示任意数量(零个或多个)单词

// * 代表两点之间一个占位单词
// # 代表后面所有,匹配所有
通配的绑定键是跟队列进行绑定的,举个小例子
队列Q1 绑定键为 .TT. 队列Q2绑定键为 TT.#
如果一条消息携带的路由键为 A.TT.B,那么队列Q1将会收到;
如果一条消息携带的路由键为TT.AA.BB,那么队列Q2将会收到;
当一个队列的绑定键为 “#”(井号) 的时候,这个队列将会无视消息的路由键,接收所有的消息。
当 * (星号) 和 # (井号) 这两个特殊字符都未在绑定键中出现的时候,此时主题交换机就拥有的直连交换机的行为。
如果只有 # ,它就实现了扇形交换机的功能。
所以主题交换机也就实现了扇形交换机的功能,和直连交换机的功能
3.交换机与队列特性设置(了解)

Exchange、Queue属性 durability
durability默认是durable(持久化),durability 属性用于定义队列或者交换机是否是持久化的。
当一个队列或者交换机被声明为持久化的时候,它们的元数据会被存储到磁盘上,这样即使在 RabbitMQ 服务器重启后,这些队列或者交换机的定义仍然存在。

持久化的队列和交换机可以确保消息的持久化,即使 RabbitMQ 服务器重启或者崩溃,消息也不会丢失。当消息被发送到持久化的队列或者交换机时,它们会被写入磁盘,以确保消息的持久性。

需要注意的是,仅仅将队列或者交换机声明为持久化是不够的,消息本身也必须被标记为持久化,才能确保消息的持久性。这可以通过在消息的属性中设置 delivery_mode 为 2 来实现。

总之, durability 属性在 RabbitMQ 中用于确保队列和交换机的持久化,以及消息的持久性,从而提高消息传递的可靠性。
Exchange、Queue类型 delete
在 RabbitMQ 中, auto delete 属性用于定义队列或交换机是否在没有消费者或绑定时自动删除。

当一个队列或交换机被声明为 auto delete 属性为 true 时,当没有消费者与该队列关联或者没有绑定到该交换机的队列时,它们会自动被删除。

这个属性通常用于临时队列或者临时交换机的场景。临时队列或交换机是在没有消费者或者绑定时自动创建的,用于处理一些临时性的任务或者临时的消息传递。
需要注意的是,如果一个持久化的队列或交换机被声明为 auto delete 属性为 true,那么它们在没有消费者或绑定时也会被自动删除,但它们的定义会在 RabbitMQ 服务器重启后重新创建。

总之, auto delete 属性在 RabbitMQ 中用于定义队列或交换机是否在没有消费者或绑定时自动删除,适用于临时队列或交换机的场景。
Exchange属性Internal
Internal的意思是内部的意思,在交换机这里设置为“Yes”之后,表示当前Exchange是RabbitMQ内部使用,用户所创建的Queue不会消费该类型交换机下的消息,既然是为了RabbitMQ系统所用,作为用户,我们就没有必要创建该类型的Exchange,当然默认也是选择No.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智慧园区预付费4G水电表管理系统

智慧园区预付费4G水电表管理系统,作为智慧城市建设的重点之一,利用4G通信技术对园区内的水电使用进行实时监控和管理。这种系统借助现代通信技术和物联网的发展,为园区水电能源的预付费、计量、监控和管理提供了新的解决方案。本文将从该系统…

750万人受影响,印度电子巨头boAt重大数据泄露事件

近日,印度消费电子巨头boAt遭遇重大数据泄露事件,超过750万客户的个人数据遭到泄露,泄露的个人数据包括姓名、地址、联系电话、电子邮件 ID 和客户 ID 以及其他敏感信息,目前这些泄露数据正在暗网上流传。 boAt Lifestyle数据库被…

vue项目初始化和部署

目录 1. 技术简介... 2 2. 安装Node.js. 3 3. 全局安装Vue CLI (脚手架工具) 5 4. 创建一个新的Vue项目... 6 5. 在阿里云虚拟机安装和配置Nginx. 9 6. 将Vue项目打包部署到Nginx下... 14 7. 访问部署的项目... 14 1. 技术简介 Vue.js(通常简称为Vue&#x…

vue3 +Taro 页面实现scroll-view 分页功能

需求 现在分页列表 后端只给你一个分页的数据列表 没有总页数 没有当前的分页 页数 只有这么一个list 、、、 如何去分页 我这使用的是scroll-view 组件 滑动到底部的事件 根据你当前设定的每页的数据数量和后端返回给你的数据列表数量 当某一次分页 两个数量不相等了以后 就…

群晖NAS使用Docker部署Potopea在线图片编辑工具并实现公网访问

文章目录 1. 部署Photopea2. 运行Photopea3. 群晖安装Cpolar4. 配置公网地址5. 公网访问测试6. 固定公网地址 本文主要介绍如何在群晖NAS使用Docker部署Potopea在线图片编辑工具,并结合cpolar内网穿透实现公网环境可以远程访问本地部署的Potopea. Photopea是一款强大…

【word技巧】Word文档打开密码,两种方法

想要保护Word文档不被任何人打开,保护文件内容,我们可以给word文档设置一个打开密码,今天分享word文档打开密码的两种设置方法。 给word文档设置打开密码有两种方法,方法如下: 方法一: 打开word文档之后…

HarmonyOS 开发-搜索页一镜到底案例

介绍 本示例介绍使用bindContentCover、transition、animateTo实现一镜到底转场动画,常用于首页搜索框点击进入搜索页场景。 效果图预览 使用说明 点击首页搜索框跳转到搜索页面显式一镜到底转场动画 实现思路 通过点击首页搜索框改变bindContentCover全屏模态…

Java绘图坐标体系

一、介绍 下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐…

【机器学习】深入解析机器学习基础

在本篇深入探讨中,我们将揭开机器学习背后的基础原理,这不仅包括其数学框架,更涵盖了从实际应用到理论探索的全方位视角。机器学习作为数据科学的重要分支,其力量来源于算法的能力,这些算法能够从数据中学习并做出预测…

甲方安全建设之研发安全-SCA

前言 大多数企业或多或少的会去采购第三方软件,或者研发同学在开发代码时,可能会去使用一些好用的软件包或者依赖包,但是如果这些包中存在恶意代码,又或者在安装包时不小心打错了字母安装了错误的软件包,则可能出现供…

移动端app如何设计测试用例?

1. 用户界面测试 布局和元素 验证所 有UI元素(如按钮、文本框、图像等)的位置和尺寸是否与设计图一致。 验证文本颜色、字体和大小是否易于阅读。 验证交互元素(如按钮)的点击区域是否足够大,易于触摸。 导航和流…

javaWeb车辆管理系统设计与实现

摘 要 随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得以普及,单位的车辆数目已经远远不止简单的几辆,与此同时就产生了车辆资源的合理分配使用问题。 企业车辆管理系统运用现代化的计算机管理手段,不但可以对车辆的使用进行合理的管理,…

【算法】贪心算法练习一

个人主页 : zxctscl 如有转载请先通知 题目 1. 贪心算法的介绍2. 860. 柠檬水找零2.1 分析2.2 代码3. 2208. 将数组和减半的最少操作次数3.1 分析3.2 代码4. 179. 最大数4.1 分析4.2 代码 1. 贪心算法的介绍 一、贪心策略:解决问题的策略,局…

继续教育自考计算机及应用试题及答案,分享几个实用搜题和学习工具 #经验分享#知识分享

题目类型比较多,包含判断、单选、多选、填空等多种题型,适合各种职业考证搜题,比如医卫类、财会类、海外贸易等,大家可以根据自己的需求进行选择,而且直接输入题目内容就能搜索题目,很是方便。 1.试题猪 …

数据结构:构建完全二叉查找树

文章目录 1、步骤 1: 对给定数组排序2、步骤 2: 递归构建完全二叉查找树3、注意4、在有序数组中寻找根结点位置5、代码实现6、其他方法?基本思路插入操作删除操作特别考虑 对于一个给定序列的二叉查找树,有很多种,但是完全二叉查找树只有一种…

Windows安装Kibana

下载 注意:为了避免一些稀奇古怪的问题,kibana版本最好和es版本保持一致。 es版本查看: 官网下载地址: Download Kibana Free | Get Started Now | Elastichttps://www.elastic.co/cn/downloads/kibana如果是下载最新的&#x…

41---音频电路设计

视频链接 音频电路设计01_哔哩哔哩_bilibili 音频电路设计 1、音频基本介绍 1.1、设备 1.1.1、音频接口 型号:ABA-JAK-038-K44 电脑主机上的音频输出插口,一个是粉色的,用来连接麦克风或话筒,一个是绿色的,用来连…

【数据结构与算法】:归并排序和计数排序

1. 归并排序 归并排序是一种效率仅次于快速排序的排序算法。它有非递归和递归两种实现方式(本文只讲述递归实现,非递归实现以后有专门的文章)。 其实,归并排序也叫外排序。它不仅可以对内存中的数据进行排序,还能对文件里的数据排序。 比如&…

网站压力测试和Locust

一、压力测试介绍 网站压力测试是一种评估网站性能、可靠性和稳定性的方法。它通过模拟大量用户同时访问网站,来测试网站的响应时间、吞吐量、资源利用率等指标,从而发现网站的潜在问题和瓶颈。下面我将从几个方面详细介绍网站压力测试: 1、压力测试的目的 评估网站在高并发…

路由器端口映射是什么意思?

路由器端口映射是一种网络配置技术,在私有网络中允许外部网络访问特定的服务或应用程序。通过将路由器的端口映射到内部客户端设备,可以实现从公共网络访问内部网络资源的目的。 天联组网介绍 天联是一款异地组网内网穿透产品,由北京金万维科…