消息中间件概念

news2025/1/11 21:05:33

f35baf7c59f94f2f94896963538abae0.jpg什么是消息队列

 

 

消息队列是消息中间件的一种实现方式。

 

什么是消息中间件?

 

将消息中间件需要理解一下什么是消息和中间件?

 

消息

消息是指软件对象之间进行交互作用和通讯利用的一种方式。

 

 

 

 

 

中间件

百度百科的介绍:

 

​ 中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。

 

这介绍的我的不是很明白,下面我就讲解一下我的理解,什么是中间件:

 

首先,中间件 顾名思义 介于两者之间的一个技术:

 

 

 

 

 

 

 

​ 为了更好的理解中间件技术,我有了这样的一个设想的概念,如图:

 

 

 

 

 

​ 信息:这是一个抽象的个体,可以代表一个软件、计算机、或者一个系统等等。

联系:则是进行通信、相互操作等等的抽象

 

​ 中间件则是将 信息与信息之间的联系践行一种存储或者管理的技术,这就是中间件技术。

 

​ 根据其应用的不同,中间件分为:

 

​ 一类是底层中间件,用于支撑单个应用系统或解决一类问题,包括交易中间件(TPM)、应用服务器、消息中间件(MOM)、数据访问中间件(UDA),远程调用中间件(RPC)等等;

 

​ 另一类是高层中间件,更多的用于系统整合,包括企业应用集成中间件、工作流中间件、门户中间件等,他们通常会与多个应用系统打交道,在系统中层次较高,并大多基于前一类的底层中间件运行。

 

总结:消息中间件则是将软件与软件之间的交互方式进行存储和管理的一种技术,也可以看做是一种容器。

 

### 深入理解消息队列:

 

消息队列,是消息中间件的一种实现方式

 

 

 

 

 

下面是消息队列传递服务的模型:

 

 

 

 

 

消息队列的传递模型一共有两中形式:

 

点对点(PTP)

即一个生产者和一个消费者一一对应;

 

 

 

 

点对点模型的特点:

 

1,每个消息只有一个消费者

 

2,发送者和接受者没有时间依赖

 

3,接受者确认消息接受和处理成功

 

 

 

 

 

发布-订阅(Pub/Sub)

发布/ 订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进

 

行接收。

 

 

 

 

 

发布-订阅模型特点:

 

1,每个次消息可以有多个消费者

 

2,客户只有订阅后才能接收消息(只有建立订阅关系才可以接收消息 )

 

3,持久订阅和非持久订阅

 

持久订阅

订阅关系建立后(关系保存在消息中间件中),不管消费者(也就是订阅者)是否在线消息都不会消失。

 

非持久订阅

建立一种类似长连接关系式的订阅模式,订阅者为了接收消息必须保持一直连接的状态,如果断开连接则丢失消息。

 

 

 

 

 

消息队列的分类:

 

push(推消息模型)

消息生产者将消息发送给消息中间件,消息中间件又将消息推送给消费者。

 

pull(拉消息模型)

消费者请求 消息中间件接收消息,消费者从消息中间件拉取消息。

 

特点:

 

 

 

 

 

目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等 。

 

消息队列的应用案例:

 

1,用户注册

 

 

 

 

 

2,日志收集分析

 

 

 

 

 

3,数据复制

 

 

 

 

 

4,延迟消息发送和暂存

 

 

 

 

 

5,消息广播

 

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

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

相关文章

改进YOLOv5 | 在 C3 模块中添加【Triplet】【SpatialGroupEnhance】【NAM】【S2】注意力机制 | 附详细结构图

文章目录 1. Triplet 注意力模块1.1 原理1.2 C3_Triplet 代码2. SpatialGroupEnhance 注意力模块2.1 原理2.2 C3_SpatialGroupEnhance 代码3. NAM 注意力模块3.1 原理3.2 C3_NAM 代码4. S2 注意力模块4.1 原理4.2 C3_S2 代码5. 添加方式💡6. C3_Attention 结构图 &#x

chatgpt赋能Python-pycharm怎么编译python

PyCharm怎么编译Python? Python是当今最流行的编程语言之一,其简单易学、高效实用的特性使其受到了广大开发者的欢迎。PyCharm是一款专业的Python集成开发环境,它提供了许多有用的功能和工具,可以极大地提高开发效率。本文将介绍…

C++ 端点检测(8领域检测)

直线曲线端点检测 一、代码二、结果适用于直线、曲线等线的端点检测。 方法是:通过判断一个点周围8个点的像素的值来判断该点是否为端点,若周围8个点中有且只有一个点像素不为0,则认为该点是线段上的一个端点。 一、代码 #include <opencv2/opencv.hpp> using name…

lwip的路由表

在lwIP中&#xff0c;路由表被实现为一个以链表形式组织的数据结构&#xff0c;每个表项都包含一个目的网络地址和一个指向输出接口的指针。当需要将数据包发送到某个目的地址时&#xff0c;lwIP会遍历路由表&#xff0c;并找到最佳匹配的表项&#xff0c;然后将数据包发送到相…

《Linux0.11源码解读》理解(三) 执行setup

上一节的最后jmpi把cs:ip设置为0x9020:0000。于是CPU开始执行setup&#xff0c;它的作用是获取机器系统数据至内存&#xff0c;关中断并挪动system&#xff0c;为32位模式转换做准备。 加载系统信息至内存 同样是调用BISO中断&#xff0c;寄存器作为入参和返回值&#xff0c;…

javaweb系列-Vue.js

w2.1 Vue概述 一个完整的html页面包括了视图和数据&#xff0c;数据是通过请求 从后台获取的&#xff0c;那么意味着我们需要将后台获取到的数据呈现到页面上&#xff0c;很明显&#xff0c; 这就需要我们使用DOM操作。正因为这种开发流程&#xff0c;所以我们引入了一种叫做M…

NLP大模型微调答疑

什么情况用Bert模型&#xff0c;什么情况用LLaMA、ChatGLM类大模型&#xff0c;咋选&#xff1f; 答&#xff1a;Bert 的模型由多层双向的Transformer编码器组成&#xff0c;由12层组成&#xff0c;768隐藏单元&#xff0c;12个head&#xff0c;总参数量110M&#xff0c;约1.1…

虚拟机02 mysql安装和配置

第一步&#xff1a;在课程资料中&#xff0c;找到数据库安装文件&#xff0c;然后上传安装文件到Linux中。文件位置如图所示&#xff1a; 第二步&#xff1a;打开Linux&#xff0c;到工作目录中创建一个mysql目录&#xff0c;然后将安装文件上传到mysql中 第三步&#xff1a…

chatgpt赋能Python-pycharm与python关联

Pycharm与Python关联&#xff1a;让你的编程更加高效 作为一名有10年Python编程经验的工程师&#xff0c;我深知Python编程的重要性。而作为一个Python开发者&#xff0c;我发现Pycharm的出现真正改变了Python编程的方式。本文将介绍Pycharm与Python的关联&#xff0c;并探讨这…

算法设计与分析:分支限界法

目录 第1关&#xff1a;0/1背包问题 任务描述&#xff1a; 相关知识&#xff1a; 分支限界法基本思想&#xff1a; 常见的分支限界法&#xff1a; 示例&#xff1a;0/1背包问题 对于0/1背包的优化&#xff1a; 题目描述&#xff1a; 编程要求&#xff1a; 测试说明&am…

chatgpt赋能Python-pycharm中怎么粘贴代码

PyCharm是Python编程领域中最受欢迎的集成开发环境之一。它是由JetBrains开发的一款跨平台IDE软件&#xff0c;旨在优化Python项目的开发过程。PyCharm拥有强大的代码编辑器、调试器、代码跟踪器和内置的版本控制工具&#xff0c;可以帮助开发人员编写高效、优质的Python代码。…

超级详细Git操作 之git log 命令的参数详解

git log命令主要用于查看Git版本演变历史&#xff08;也就是提交历史&#xff09;&#xff0c;同时根据追加的参数和选项不同&#xff0c;也会有不同的展示效果。 但默认git log命令显示出的x效果实在太丑&#xff0c;不好好打扮一下根本没法见人&#xff0c;打扮好了用alias命…

chatgpt赋能Python-pycharm怎么重新配置python环境

Pycharm重新配置Python环境方法概述 如果您是Python编程的专业人士或者是刚开始学习Python&#xff0c;您可能已经听说了Pycharm这个IDE。Pycharm不仅可以提高您Python编程的效率&#xff0c;而且也大大改善了整个开发过程。不过&#xff0c;如果您需要使用Pycharm重新配置Pyt…

深度学习用于医学预后-第二课第四周1-4节随堂作业

作业名&#xff1a;C2_W4_lecture.ipynb 作业地址&#xff1a; github --> bharathikannann/AI-for-Medicine-Specialization-deeplearning.ai --> AI for Medical Prognosis --> Week 4 One-hot encode categorical variables 首先我们来看一下哪些特征是分类特征…

Maven高级篇

分模块开发与设计 ssm_pojo拆分 新建模块拷贝原始项目中对应的相关内容到ssm_pojo模块中 实体类&#xff08;User&#xff09;配置文件&#xff08;无&#xff09; ssm_dao拆分 新建模块拷贝原始项目中对应的相关内容到ssm_dao模块中 数据层接口&#xff08;UserDao&#x…

spring学习笔记(2)

目录 RESTful Web 服务是干啥用的&#xff1f; 这个是什么意思&#xff1f;“OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.” 构建一个RESTful Web服务 GB有多大 点击…

IBM 创新方案+SNP数据转型助一汽大众实现数据平稳、高效迁移

近日&#xff0c;IBM 采用基于SNP Bluefield技术迁移的IBM Rapid Move创新数据迁移方案, 成功为一汽-大众实施了企业运营数据系统从 ECC 到 S/4 的升级项目。该项目系统切换耗时仅三天&#xff0c;不仅助客户高效、平稳迁移了系统数据&#xff0c;升级了数据底座&#xff0c;还…

第六讲:“声音”写具体

爸爸又打呼了!“呼噜一呼噜一像一股巨浪腾空而起&#xff0c;以每秒八十米的速度向上冲刺&#xff0c;力图掀开天花板&#xff0c;掀翻整座住宅楼;“呼噜一一呼噜一-”&#xff0c;像一台轰鸣的坦克在穿行&#xff0c;床垫在抖动&#xff0c;吊灯在摇晃&#xff0c;墙灰在簌籁(…

【办公软件篇】Listary搜索神器清除搜索历史记录

【办公软件篇】Listary搜索神器清除搜索历史记录 装机必备搜索神器—【蘇小沐】 文章目录 【办公软件篇】Listary搜索神器清除搜索历史记录1.实验环境 &#xff08;一&#xff09;删除搜索历史记录总结 1.实验环境 官网地址&#xff1a;Listary Discussions 系统版本Windows…

chatgpt赋能Python-pycharm怎么添加库函数

PyCharm怎么添加库函数 作为一位拥有10年python编程经验的工程师&#xff0c;我可以告诉大家&#xff0c;PyCharm是一个非常优秀的Python集成开发环境&#xff0c;它可以帮助我们更加高效地编写Python代码。但是在使用PyCharm的时候&#xff0c;我们经常需要使用一些库函数&am…