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

消息队列技术的发展历史

在这里插入图片描述

消息队列技术的演进历程宛如一幅波澜壮阔的科技画卷,历经多个标志性阶段,各阶段紧密贴合不同的技术需求与市场风向,下面为您详细道来。

第一阶段:消息中间件的起源(1970 年代末期 - 1980 年代中期)

在计算机发展的早期,硬件资源极度匮乏,运算能力和存储容量都极为受限。1970 年代末期,消息队列技术悄然萌芽,最初聚焦于管理主机之间的打印作业。彼时,大型企业办公场景下,仅有的几台大型主机承担着核心运算任务,打印机作为稀缺资源,众多部门员工的打印请求若无序涌入,极易引发混乱。早期的消息队列机制恰似一位有条不紊的调度员,将不同用户的打印请求依次排队,有序输送给打印机,保障打印流程顺畅无阻。

到了 1980 年代初期至中期,随着计算机网络逐步搭建,分布式系统概念崭露头角,消息队列技术顺势拓展,成为分布式系统里不可或缺的标准组件。以企业内部电子邮件系统为例,当时网络带宽狭窄,服务器性能欠佳,Sendmail 这类邮件传输代理借助简单的消息队列机制,把用户撰写好的邮件先排入队列等待,再按序逐个发送,有效避免因大量并发发送请求致使系统崩溃,让邮件传输更趋稳定、有序。

第二阶段:消息代理的演进(1980 年代后期 - 2000 年代初期)

自 1980 年代后期起,企业数字化转型加速,业务复杂度与数据量呈指数级攀升,简单的消息排队机制已难以满足精细化运作需求,消息队列由此开启向功能丰富的消息代理的进阶之旅,这一进程贯穿 2000 年代初期。

在企业级应用领域,伴随企业规模扩张,部门间数据交互愈发频繁复杂。传统制造业的供应链管理系统便是典型例证,采购、生产、销售部门的数据需实时共享协同。TIBCO Rendezvous 这款消息代理软件大放异彩,凭借可靠的消息持久化功能,生产订单数据从销售端传来后,即便系统遭遇短暂故障,TIBCO Rendezvous 也能将数据持久存储,保障生产流程无缝衔接。

金融行业也不例外,银行转账汇款业务每日需处理海量交易信息。IBM MQ 作为经典消息代理解决方案,具备强大的消息路由与过滤能力,不同分行、不同业务类型的交易请求进入 IBM MQ 后,能依据预设规则精准路由至对应处理模块,同时剔除无效或重复请求,显著提升业务处理效率与精准度。

航空业票务预订系统同样受益,BEA WebLogic JMS 发挥关键作用。彼时全球航空客流量攀升,票务预订系统面临高并发的预订、改签、退票请求,BEA WebLogic JMS 通过成熟的发布/订阅模型,及时推送票务信息更新至售票终端、线上平台及合作伙伴,确保票务数据实时性与一致性,满足乘客购票需求。

示例代码如下,用 Java 和 IBM MQ 实现简单消息发送:

import com.ibm.mq.MQException;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;public class Main {public static void main(String[] args) {try {MQQueueManager qmgr = new MQQueueManager("QMGR_NAME");int openOptions = MQC.MQOO_OUTPUT;MQQueue queue = qmgr.accessQueue("QUEUE_NAME", openOptions);MQMessage message = new MQMessage();message.writeUTF("Sample transaction message");MQPutMessageOptions pmo = new MQPutMessageOptions();queue.put(message, pmo);queue.close();qmgr.disconnect();} catch (MQException | java.io.IOException e) {e.printStackTrace();}}
}

此阶段的消息代理软件,为后续进阶技术筑牢根基,凸显消息队列在复杂业务场景下解耦、增效与保障可靠性的巨大潜力。

第三阶段:事件流平台的发展(2000 年代中期 - 2010 年代中期)

步入 2000 年代中期,大数据与物联网技术蓬勃兴起,事件驱动架构渐成热门趋势,消息队列加速演变为事件流平台,这一变革延续至 2010 年代中期。

在物联网场景里,智慧城市建设催生海量传感器数据处理需求。城市环境监测系统中,遍布角落的温度、湿度、空气质量传感器持续产出海量数据。Apache Kafka 凭借卓越的分布式架构与高吞吐量特性,成为处理这类数据流的利器。它一边持久化存储传感器数据,构建庞大数据湖,供后续环境趋势研究;一边实时监测,遇空气质量超标等异常,即刻触发预警通知相关部门,实现实时感知与响应。

Apache Flink 与 Kafka 相得益彰,专注流计算。实时广告投放场景下,广告平台需依据用户实时浏览、位置信息快速决策。Flink 从 Kafka 获取实时用户行为数据流,运用窗口聚合、实时机器学习模型算出匹配广告,提升广告转化率。

这一时期,ZeroMQ 也崭露头角,它主打轻量级、高性能的消息传递,更聚焦于底层网络通信优化。在一些对延迟要求严苛的高频交易场景中,每毫秒的延迟都关乎巨大收益,ZeroMQ 能够通过精简协议、高效的内存管理,快速在交易系统各组件间传递买卖指令,减少网络开销,保障交易速度。与其他消息队列不同,它不需要专门的消息代理服务器,直接基于点对点或发布/订阅模式进行通信,降低部署复杂度。

RabbitMQ 和 ActiveMQ 同样持续进化,融入事件流处理特性。电商物流信息追踪场景里,RabbitMQ 在原有可靠传递基础上,支持简单流式数据处理,对包裹运输状态消息筛选聚合,为用户展示清晰物流进度。ActiveMQ 在企业系统监控场景发力,接收各业务系统日志当作事件流,依规则定位异常模块,辅助运维排查故障。

第四阶段:多合一解决方案(2010 年代后期至今)

2010 年代后期,数字化转型全面深入,企业对数据处理与管理服务要求愈发精细多元,消息队列与事件流平台深度融合,催生多合一解决方案。

金融风控系统是典型应用场景,对数据精准度、实时性、完整性要求极高。阿里云的 RocketMQ 脱颖而出,整合众多功能,交易流水入系统,内置规则引擎速标可疑交易;流式处理监控交易趋势,捕捉异常资金流向;持久化存储长期交易数据,深挖潜在风险;分布式存储保障多节点冗余,守护金融稳定。

腾讯云的 CMQ 在游戏行业表现出色。游戏运营涉及海量玩家登录、充值、道具使用消息,CMQ 高效传递之余,提供可视化监控工具,运营团队据此实时调控参数,从容应对游戏高峰流量,保障玩家流畅体验。

内在推动力
  • 系统耦合性高:传统同步调用让企业级应用系统脆弱不堪,如传统制造业 ERP 系统,生产、采购、销售模块紧密耦合,一处故障便致流程停滞,促使企业寻求解耦工具,消息队列应运而生。
  • 性能瓶颈:高并发互联网场景尽显同步调用弊端,热门直播带货时,大量下单请求同步处理,数据库不堪重负,页面响应延迟,异步消息队列可排队处理请求,缓解压力、提速响应。
  • 可靠性问题:远程数据传输场景常遇网络不稳,石油勘探队偏远地区传地质数据,同步调用易丢数据,消息队列的多副本存储、重试策略确保数据完整送达。
  • 功能需求:电商业务创新催生特殊功能诉求,拼团活动需延迟消息提醒未成团用户,跨境电商资金结算靠事务消息保障流转无误,生鲜电商依顺序消息维持订单处理秩序。
  • 场景需求:股票交易市场实时性要求苛刻,每秒价格波动关乎巨额财富,需毫秒级响应;大数据分析场景海量日志涌入,要求消息队列强吞吐能力,不同场景倒逼技术升级。
  • 分布式集群的支持:企业从单体架构迈向微服务集群,跨国电商全球部署服务节点,消息队列需适配分布式架构,保障全球节点间消息畅达。
现代发展

近年来,云计算和微服务架构风靡,为消息队列技术注入新活力。构建云原生分布式系统时,消息队列是关键拼图。电商平台微服务化后,商品、订单、用户服务等需交互协作,消息队列搭建异步通信桥梁,削峰填谷,保障系统弹性。

在云计算环境里,AWS 的 SQS、阿里云的 RocketMQ 等深受青睐,植入各类云原生项目。业界 MQ 朝融合实时消息与流消息架构迈进,Kafka 持续优化流处理能力;Serverless 模式让开发者摆脱繁琐运维,聚焦业务逻辑;Event 驱动适配多元事件源;协议兼容助力不同系统无缝接入,全方位解锁计算、存储弹性,迈向集群的 Serverless 化,巩固消息队列核心地位。

总结而言,消息队列技术随软件架构复杂度攀升、系统交互频次激增、数据量膨胀持续革新,其系统解耦、异步处理、流量削峰、可靠传输的核心价值,引领它从简易通信手段蜕变成为现代分布式系统的关键支柱。

相关文章:

消息队列技术的发展历史

消息队列技术的演进历程宛如一幅波澜壮阔的科技画卷,历经多个标志性阶段,各阶段紧密贴合不同的技术需求与市场风向,下面为您详细道来。 第一阶段:消息中间件的起源(1970 年代末期 - 1980 年代中期) 在计算…...

每天40分玩转Django:Django部署

Django部署 一、今日学习内容概述 学习模块重要程度主要内容生产环境配置⭐⭐⭐⭐⭐settings配置、环境变量WSGI服务器⭐⭐⭐⭐⭐Gunicorn配置、性能优化Nginx配置⭐⭐⭐⭐反向代理、静态文件安全设置⭐⭐⭐⭐⭐SSL证书、安全选项 二、生产环境配置 2.1 项目结构调整 mypr…...

搭建Elastic search群集

一、实验环境 二、实验步骤 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎Elasticsearch目录文件: /etc/elasticsearch/elasticsearch.yml#配置文件 /etc/elasticsearch/jvm.options#java虚拟机 /etc/init.d/elasticsearch#服务启动脚本 /e…...

解析 Ingress-Nginx 故障:排查思路与方法

文章目录 一、什么是Ingress-Nginx二、故障排除1.1Ingress-Controller日志和事件检查 Ingress 资源事件检查 Nginx 配置检查使用的服务是否存在调试日志 1.2对 Kubernetes API 服务器的认证服务认证服务账户Kube-Config 1.3使用GDB和Nginx1.4在 Nginx 4.2.5 或其他版本&#xf…...

2024 楚慧杯 re wp

go_bytes 附件拖入ida 输入长度为0x28,每两位字符的4bit拼接 与一个常量值经过运算后的值进行异或,并且判断是否相等 脚本 bouquet 附件拖入ida。简单去一下花 构建了一个二叉树,然后递归调用函数 重新排列一下再层序遍历读出即可 zistel 附件…...

【物联网技术与应用】实验10:蜂鸣器实验

实验10 蜂鸣器实验 【实验介绍】 蜂鸣器是音频信号装置。蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。 【实验组件】 ● Arduino Uno主板* 1 ● USB数据线* 1 ● 有源蜂鸣器* 1 ● 无源蜂鸣器* 1 ● 面包板* 1 ● 9V方型电池* 1 ● 跳线若干 【实验原理】 如图所示&#x…...

单片机:实现矩阵键盘控制LCD屏幕(附带源码)

单片机实现矩阵键盘控制LCD屏幕 矩阵键盘(Matrix Keypad)是一种常用的输入设备,广泛应用于嵌入式系统中。在许多嵌入式应用中,我们常常需要通过按键输入来控制系统的功能。结合LCD显示屏,我们可以实现一个简单的界面&…...

鸿蒙Next之包体积极限优化

鸿蒙应用包大小优化全解析 在鸿蒙应用开发中,减小应用包大小对于提升应用下载和安装体验起着关键作用。通过压缩、精简或复用应用中的代码与资源,能有效降低包体积,减少空间占用并加快下载与安装速度。下面详细介绍一下鸿蒙应用包大小优化的…...

Android实战经验篇-log工具

详细代码实现及系列文章请转如下链接 Android实战经验篇-系列文章汇总 Android Display Graphics系列文章-汇总 一、基础知识 1.1 Logging简述 我们写的第一个计算机C程序一般是printf(“Hello world!”);这就是一个log输出。Linux内核有Kernel log以及配套的Log工具&#x…...

DPU编程技术解析与实践应用

一、引言 1.1 研究背景与目的 随着信息技术的飞速发展,数据中心在现代社会中的地位日益凸显,成为支撑各行业数字化转型的关键基础设施。在数据中心内部,数据的处理速度、效率和安全性成为了影响整体性能的核心要素。为了应对不断增长的数据…...

红帽认证的含金量和价值如何?怎么报名红帽认证考试?

红帽企业 Linux(RHEL)是由红帽公司提供的一款商业支持、专为生产环境设计的Linux发行版。随着IT系统和工作负载日益复杂化,底层基础设施及操作系统必须兼具可靠性、可扩展性,并能有效促进性能提升。红帽认证在全球范围享有盛誉&am…...

VS Code Copilot 与 Cursor 对比

选手简介 VS Code Copilot:算是“老牌”编程助手了,虽然Copilot在别的编辑器上也有扩展,不过体验最好的还是VS Code,毕竟都是微软家的所以功能集成更好一些;主要提供的是Complete和Chat能力,也就是代码补全…...

蓝桥杯嵌入式备赛教程(1、led,2、lcd,3、key)

一、工程模版创建流程 第一步 创建新项目 第二步 选择型号和管脚封装 第三步 RCC使能 外部时钟,高速外部时钟 第四步晶振时钟配置 由数据手册7.1可知外部晶振频率为24MHz 最后一项设置为80 按下回车他会自动配置时钟 第五步,如果不勾选可能程序只会…...

取多个集合的交集

1.我们取多个集合的交集&#xff0c;先把各个集合放入list中 List < Set < String > > listnew ArrayList<>();HashSet<String> set1new HashSet<>();set1.add( "A" );set1.add("B" );set1.add("C" );HashSet<…...

如何实现电子发票XML文件的合规性存档?

随着国家税务改革的推进&#xff0c;企业对电子发票的管理和存档要求越来越高。尤其是《财政部 国家税务总局关于进一步深化增值税发票管理改革的通知》&#xff08;财会〔2023〕18号文&#xff09;的发布&#xff0c;明确规定了电子发票的存档要求。这为企业在财务管理中的电子…...

IOT、MES、WMS、MOM 和 EPMS 系统综合技术与业务文档

IOT、MES、WMS、MOM 和 EPMS 系统综合技术与业务文档 一、引言 在现代制造业和工业管理领域&#xff0c;IOT&#xff08;物联网&#xff09;、MES&#xff08;制造执行系统&#xff09;、WMS&#xff08;仓库管理系统&#xff09;、MOM&#xff08;制造运营管理系统&#xff…...

IntelliJ IDEA Docker集成

一、概述 Docker是一种用于在隔离和可复制环境中部署和运行可执行文件的工具。这可能很有用&#xff0c;例如&#xff0c;在与生产相同的环境中测试代码。 IntelliJ IDEA集成了Docker功能&#xff0c;并为创建Docker映像、运行Docker容器、管理Docker Compose应用程序、使用公…...

【react项目】从零搭建react项目[nodejs安装]

〇、模板git下载地址 下载即用的模板地址&#xff1a; http:https://e.coding.net/uijiio/init_app/react_init_app.git ssh:gite.coding.net:uijiio/init_app/react_init_app.git 目前更新至:登录与主页跳转&#xff0c;主页包含菜单和容器区 一、搭建基础空白React项目 1.准备…...

【专题】2024年悦己生活消费洞察报告汇总PDF洞察(附原数据表)

原文链接&#xff1a; https://tecdat.cn/?p38654 在当今时代背景下&#xff0c;社会发展日新月异&#xff0c;人们的生活方式与消费观念正经历深刻变革。MoonFox 月狐数据的《2024 年悦己生活消费洞察报告》聚焦于这一充满活力与变化的消费领域。随着就业、婚姻等社会压力的…...

Github——网页版上传文件夹

第一步&#xff1a;创建一个新的仓库或进入已存在的仓库页面 第二步&#xff1a;点进对应的文件夹下&#xff0c;然后 点击 “Upload files” 第三步&#xff1a;将文件夹拖拽到上传区域 打开资源管理器&#xff0c;将要上传的文件夹从计算机中拖拽到上传区域。 注意&#xf…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...