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

RabbitMQ的消息发送和接收机制

所有 MQ 产品从模型抽象上来说都是一样的过程:

消费者(consumer)订阅某个队列。生产者(producer)创建消息,然后发布到队列(queue)中,最后将消息发送到监听的消费者。

上面是MQ的基本抽象模型,但是不同的MQ产品有有者不同的机制,RabbitMQ实际基于AMQP协议的一个开源实现,因此RabbitMQ内部也是AMQP的基本概念。

RabbitMQ的内部接收如下:

1、Message

消息,消息是不具体的,它由消息头和消息体组成。消息体是不透明的,而消息头则

由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息

的优先权)、delivery-mode(指出该消息可能需要持久性存储)等。 

2、Publisher

消息的生产者,也是一个向交换器发布消息的客户端应用程序。

3、Exchange

交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。

4、Binding

绑定,用于消息队列和交换器之间的关联。一个绑定就是基于路由键将交换

器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的

路由表。

5、Queue

消息队列,用来保存消息直到发送给消费者。它是消息的容器,也是消息的

终点。一个消息可投入一个或多个队列。消息一直在队列里面,等待消费者连接

到这个队列将其取走。

6、Connection

网络连接,比如一个TCP连接。

7、Channel

信道,多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的

TCP连接内地虚拟连接,AMQP 命令都是通过信道发出去的,不管是发布消息、

订阅队列还是接收消息,这些动作都是通过信道完成。因为对于操作系统来说建

立和销毁 TCP 都是非常昂贵的开销,所以引入了信道的概念,以复用一条 TCP

连接。

8、Consumer

消息的消费者,表示一个从消息队列中取得消息的客户端应用程序。

9、Virtual Host

虚拟主机,表示一批交换器、消息队列和相关对象。虚拟主机是共享相同的

身份认证和加密环境的独立服务器域。每个 vhost 本质上就是一个 mini 版的

RabbitMQ 服务器,拥有自己的队列、交换器、绑定和权限机制。vhost 是 AMQP

概念的基础,必须在连接时指定,RabbitMQ 默认的 vhost 是 / 。

10、Broker

表示消息队列服务器实体。

相关文章:

RabbitMQ的消息发送和接收机制

所有 MQ 产品从模型抽象上来说都是一样的过程: 消费者(consumer)订阅某个队列。生产者(producer)创建消息,然后发布到队列(queue)中,最后将消息发送到监听的消费者。 上…...

记录111

在两台 RHEL 8 服务器上搭建 PostgreSQL 和 pgpool-II 环境涉及到安装 PostgreSQL、配置流复制(Streaming Replication)以及安装和配置 pgpool-II。以下是详细的步骤: ### 准备工作 1. **获取服务器**:确保你有两台运行 RHEL 8 的…...

振动和震动的区别?

问题描述:振动和震动的区别? 问题解决: 震动(Oscillation): 特点: 随机的、突发的、不经常的、无规律的运动。例子: 地壳震动、消息震动全国,强调的是运动的力度或幅度&…...

3DMM模型

目录 BFMBFM_200901_MorphableModel.matexp_pca.bintopology_info.npyexp_info.npy BFM BFM_2009 01_MorphableModel.mat from scipy.io import loadmat original_BFM loadmat("01_MorphableModel.mat") # dict_keys: [__header__, __version__, __globals__, # …...

Python 3 使用 write()、writelines() 函数写入文件

1 使用 write() 函数,将字符串(或字节串,仅适用写入二进制文件中)写入文件中。 with open(example.txt,w,encodingutf-8) as f:f.write(春夜喜雨\n)f.write(杜甫 [唐代]\n)f.write(好雨知时节,当春乃发生。\n)f.write(…...

鸿蒙(HarmonyOS)应用开发——管理组件状态

状态管理 在应用中,界面通常都是动态的。 #mermaid-svg-DrPNsglFkyLqn7Lw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-DrPNsglFkyLqn7Lw .error-icon{fill:#552222;}#mermaid-svg-DrPNsglFkyLqn7Lw …...

倚天屠龙:Github Copilot vs Cursor

武林至尊,宝刀屠龙。号令天下,莫敢不从。倚天不出,谁与争锋! 作为开发人员吃饭的家伙,一款好的开发工具对开发人员的帮助是无法估量的。还记得在学校读书的时候,当时流行CS架构的RAD,Delphi和V…...

【web安全】RCE漏洞原理

前言 菜某的笔记总结,如有错误请指正。 RCE漏洞介绍 简而言之,就是代码中使用了可以把字符串当做代码执行的函数,但是又没有对用户的输入内容做到充分的过滤,导致可以被远程执行一些命令。 RCE漏洞的分类 RCE漏洞分为代码执行…...

EI论文复现:基于组合双向拍卖的共享储能机制研究程序代码!

本程序参考EI期刊论文《基于组合双向拍卖的共享储能机制研究》,文中的组合双向拍卖交易机制较为新颖,本质上属于博弈范畴,共享储能是目前的研究热点,牵涉到共享储能参与者的投标策略和收益函数,文中所提模型可为电力市…...

ThinkPHP 5 中,你可以使用定时任务调度器(TaskScheduler)来执行其他定时任务

在 ThinkPHP 5 中,你可以使用定时任务调度器(TaskScheduler)来执行其他定时任务。以下是一个示例代码,演示如何在一个定时任务中执行另一个定时任务: 首先,你需要创建一个继承自 think\console\Command 的…...

mysql:免费的GUI客户端工具推荐并介绍常用的操作

给大家推荐几个常用的 mysql 数据库客户端 sequel-pro sequel-ace 官网下载地址 免费 sequel-ace 可以理解为 Sequel Pro 的升级版,由于Sequel Pro官方不维护了,特别是对 MySQL 8.0 支持不好,所以现在由社区维护了新分支 sequel-ace&#x…...

[Unity数据管理]自定义菜单创建Unity内部数据表(ScriptableObject)

Unity 在开发的时候如果数据量比较大&#xff0c;或者一部分数据需要存在云端&#xff0c;那么就需要一些数据库 轻量型到大型的包括&#xff1a; 数组-内存存储读取 列表-内存存储读取 List<T> tList new List<T>(); XML-硬盘存储读取 JSON-硬盘存储读取 …...

使用JAVA语言写一个排队叫号的小程序

以下是一个简单的排队叫号的小程序&#xff0c;使用JAVA语言实现。 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner;public class NumberingSystem {public static void main(String[] args) {Queue<String> queue new LinkedList<…...

openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表

文章目录 openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表140.1 相关概念140.2 操作步骤140.3 维护建议 openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表 为了保证数据库的有效运行&#xff0c;数据库必须在插入/删除操作后&#xff0c;基于…...

ubuntu20.04使用LIO-SAM对热室空间进行重建

一、安装LIO-SAM 1.环境配置 默认已经安装过ros sudo apt-get install -y ros-Noetic-navigation sudo apt-get install -y ros-Noetic-robot-localization sudo apt-get install -y ros-Noetic-robot-state-publisher 安装 gtsam(如果是18.04的ubuntu直接按照官网配置&…...

如何选学生用的台灯?眼科专家都说好的学生台灯分享!

根据中国眼健康白皮书显示&#xff0c;我国儿童青少年近视总体发生率为53.6%&#xff0c;由此可见如今青少年学生近视的发病率非常高的&#xff0c;且越来越向低龄化发展&#xff0c;不少还在小学阶段的孩子也存在近视的现象。 而造成这个现象的主要原因就是长时间的用眼导致的…...

Linux4.8、环境变量续

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言 如果对环境变量没有基本的理解&#xff0c;那么建议先看完这篇文章&#xff1a;环境变量https://blog.csdn.net/m0_74824254/article/details/134661113?spm1001.2014.3001.5501 环境变量与本地变量区别 使用export设…...

PTA 7-231 买文具

某小学要购置文具。批发市场中 A 牌的铅笔卖 5 元一支&#xff0c;C 牌的铅笔卖 2 元一支&#xff0c;D 牌的简易铅笔卖1元2只&#xff08;捆绑销售&#xff0c;只能买偶数只&#xff09;。 如果想用n元买n支笔&#xff0c;问有多少种买法&#xff1f;&#xff08;题目保证 n …...

GPTs每日推荐--生化危机【典藏版】

今天给大家推荐一个游戏性质的GPTs&#xff0c;叫做生化危机典藏版&#xff0c;国内点击可玩。 开篇&#xff1a;玩家从末日中醒来。 选择&#xff1a;玩家会遇到各种资源、任务、剧情&#xff0c;需要自行选择相关的分支剧情&#xff0c;一旦选错&#xff0c;无法重选。 结局…...

jenkins-cicd基础操作

1.先决条件 1.首先我个人势在k8s集群中创建的jenkins,部署方法搭建 k8s部署jenkins-CSDN博客 2.安装指定插件. 1.Gitlab plugin 用于调用gitlab-api的插件 2.Kubernetes plugin jenkins与k8s进行交互的插件,可以用来自动化的构建和部署 3.Build Authorizatio…...

ctfhub技能树_web_信息泄露

目录 二、信息泄露 2.1、目录遍历 2.2、Phpinfo 2.3、备份文件下载 2.3.1、网站源码 2.3.2、bak文件 2.3.3、vim缓存 2.3.4、.DS_Store 2.4、Git泄露 2.4.1、log 2.4.2、stash 2.4.3、index 2.5、SVN泄露 2.6、HG泄露 二、信息泄露 2.1、目录遍历 注&#xff1…...

使用Docker本地部署chatgpt

GitHub上有一个开源的工程ChatGPT-Next-Web&#xff0c;这个工程已经封装好了UI以及和OpenAI的API之间的交互&#xff0c;你要做的事情就是把他部署到本地&#xff0c;并配置好你的OpenAI的sk&#xff0c;然后就可以使用了。那么接下来的文章里&#xff0c;我会手把手教你如何C…...

SpringBoot 集成Netty、WebSocket,5分钟搭建聊天通信系统

文章目录 前言Netty简介使用Netty开发WebSocket应用程序开始项目一、添加依赖二、自定义处理器三、初始化通道加载器四、配置启动器五、添加启动监听器六、启动项目七、演示效果1. 客户端1看到其他客户端上线2. 客户端3收到客户端1发送的消息3. 客户端1收到客户端2下线前言 在…...

LeedCode刷题---双指针问题

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 双指针简介 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是左右指针。 对撞指针:一般用于顺序结构中&…...

使用Notepad++编辑器,安装AnalysePlugin搜索插件

概述 是一款非常有特色的编辑器&#xff0c;Notepad是开源软件&#xff0c;Notepad中文版可以免费使用。 操作步骤&#xff1a; 1、在工具栏 ->“插件”选项。 2、勾选AnalysePlugin选项&#xff0c;点击右上角“安装”即可。 3、 确认安装插件 4、下载插件 5、插件已安装…...

胶囊网络实现手写数字分类

文章目录 前言一、完整代码二、修改成自己的数据集总结 前言 胶囊网络的概念可以先行搜索。 一、完整代码 import torch import torch.nn.functional as F from torch import nn from torchvision import transforms, datasets from torch.optim import Adam from torch.util…...

Java零基础-if条件语句

前言 条件语句是编程语言中最基础也是最常用的语句之一&#xff0c;对于初学者来说&#xff0c;掌握好条件语句是学习编程的第一步。本文将以Java开发语言为例&#xff0c;详细介绍Java中的if条件语句及其应用场景。 摘要 本文主要包含以下内容&#xff1a; Java中的if条件…...

中国证券交易所有哪些

中国一共有五个证券交易所&#xff0c;分别是&#xff1a; 1、上海证券交易所。 上海证券交易所&#xff0c;简称为上交所。 ①成立时间&#xff1a;上交所成立于1990年11月26日&#xff0c;同年12月19日开业。 ②规模&#xff1a;截至2020年末&#xff0c;沪市上市公司家数…...

欢迎回到 C++ - 现代 C++(心得-壹)

原文链接欢迎回到 C - 现代 C | Microsoft Learn 这里先是讲了现代c的优势&#xff0c;其相对于其他编程语言有快速、高效。 相对于其他语言&#xff0c;该语言更加灵活&#xff0c;跨平台&#xff08;硬件平台&#xff09;性也很强&#xff0c;可以直接访问硬件&#xff0c;虽…...

【Vue3+Ts项目】硅谷甄选 — 搭建后台管理系统模板

一、 项目初始化 一个项目要有统一的规范&#xff0c;需要使用eslintstylelintprettier来对我们的代码质量做检测和修复&#xff0c;需要使用husky来做commit拦截&#xff0c;需要使用commitlint来统一提交规范&#xff08;即统一提交信息&#xff09;&#xff0c;需要使用pre…...

东莞营销网站建设/百度搜索推广采取

与非网 7 月 2 日讯&#xff0c;据外媒报道&#xff0c;根据显示屏分析师罗斯 . 杨(Ross Young)的说法&#xff0c;苹果公司尚未发布的产品 iPhone12不会配置 120Hz 动态刷新的屏幕。Young 之前就曾表示&#xff0c;苹果将不采用高刷技术&#xff0c;除非 LTPO 技术能够被量产。…...

徐州专业网站建设公司/营销型网站外包

前言递归是一种非常重要的算法思想&#xff0c;无论你是前端开发&#xff0c;还是后端开发&#xff0c;都需要掌握它。在日常工作中&#xff0c;统计文件夹大小&#xff0c;解析xml文件等等&#xff0c;都需要用到递归算法。它太基础太重要了&#xff0c;这也是为什么面试的时候…...

简述网站建设过程步骤/东莞互联网推广

作者&#xff1a;范军 &#xff08;Frank Fan&#xff09; 新浪微博&#xff1a;frankfan7 微信&#xff1a;frankfan7在【DevOps】谁说大象不能跳舞?一文之后&#xff0c;本文对DevOps的理念作进一步探讨。最近在读一本书《Project Phoenix》&#xff0c;用小说的方式来描述…...

南京网站建设多少钱/西安seo公司

本文仅代表 Phodal 的个人观点&#xff0c;来听听一个前端程序员的 YY。新一期的ThoughtWorks技术雷达有点出乎意料&#xff0c;使用new标签的框架、工具、技术、语言等等超过了一半——Vue.js、ES2017上榜&#xff0c;Three.js凭着VR的火又上榜了&#xff0c;还有熟悉的Electr…...

百度官方网站怎么做/网上接单平台有哪些

和IOS开发和Windows Phone开发相比&#xff0c;Android是开放的&#xff0c;Android上的开发也相对更加灵活&#xff0c;能够做很多事情。有的朋友会发现&#xff0c;在某些Android应用安装以后&#xff0c;第一次运行&#xff0c;就会在桌面创建快捷方式。这是如何做到的呢&am…...

cnetos 做网站服务/官网排名优化方案

文章目录加法运算用加法代替减法移码参考加法运算 用加法代替减法 10-37 和 &#xff08;109&#xff09; 19 &#xff0c;然后 19 mod 127&#xff0c;从而达到减法和加法的效果一样 存储单元为8bit时&#xff0c;计算机作加减运算时&#xff0c;都可以看成 mod 2^8 移码…...