RabbitMQ升级打怪之路(1) - RabbitMQ概述 目录1. RabbitMQ概述前言什么是MQMQ的作用主要核心作用为什么选择RabbitMQRabbitMQ 介绍发展历史与背景1. RabbitMQ概述前言在互联网行业中许多公司都喜欢用动物命名产品或者作为公司的logo和吉祥物 。例如腾讯的企鹅、京东的狗、美团的袋鼠、携程的海豚而阿里更是拥有蚂蚁、飞猪、天猫、菜鸟、闲鱼、盒马等以一己之力组建了一个“动物园” 。Rabbit同样也是一个公司名 。MQMessage Queue是消息队列的意思而RabbitMQ就是 Rabbit 企业下的一个消息队列产品 。RabbitMQ 是一个实现了AMQP的消息队列服务是当前主流的消息中间件之一 。AMQP (Advanced Message Queuing Protocol高级消息队列协议)是一个通用的应用层协议提供统一的消息服务专为面向消息的中间件设计 。基于此协议的客户端与消息中间件可传递消息并不受客户端或中间件、开发语言等条件的限制 。什么是MQMQMessage Queue从字面意思上看本质上是一个先进先出FIFO的队列。只不过队列中存放的内容是消息Message 。消息的形态可以非常简单如文本字符串、JSON等也可以很复杂如内嵌对象 。MQ 多用于分布式系统之间进行通信 。系统之间的调用通常有两种方式同步通信直接调用对方的服务数据从一端发出后立即就可以达到另一端如接口调用 。异步通信数据从一端发出后先进入一个容器进行临时存储当达到某种条件后再由这个容器发送给另一端 。这个用于临时存储的容器的具体实现之一就是 MQ 。RabbitMQ 就是 MQ 的一种实现 。MQ的作用MQ 的主要工作是接收并转发消息在不同的应用场景下可以展现不同的作用 。可以把 MQ 想象成一个仓库采购部门进货之后把零件放进仓库生产部门从仓库中取出零件并加工成产品 。区别在于仓库里存放和转发的是物品而 MQ 负责存储和转发的是消息 。主要核心作用1.异步解耦 在业务流程中一些操作可能非常耗时但不需要即时返回结果 。可以借助 MQ 把这些操作异步化 。例如用户注册后发送注册短信或邮件通知可作为异步任务处理而不必等待这些操作完成后才告知用户注册成功 。2.流量削峰 在突发流量剧增的情况下应用需要继续发挥作用 。如果以处理这类峰值为标准来投入资源会造成巨大的浪费 。使用 MQ 能让关键组件支撑突发访问压力避免系统崩溃 。例如秒杀或促销活动中利用 MQ 控制流量并将请求排队系统再根据自身处理能力逐步消化请求 。3.消息分发 当多个系统需要对同一数据做出响应时可以使用 MQ 进行消息分发 。例如支付成功后支付系统向 MQ 发送消息其他系统直接订阅该消息而无需轮询数据库 。4.延迟通知 在需要在特定时间后发送通知的场景中可以使用 MQ 的延迟消息功能 。例如在电子商务平台中如果用户下单后一定时间内未支付可以使用延迟队列在超时后自动取消订单 。为什么选择RabbitMQ目前业界有很多 MQ 产品例如 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ 等也有直接使用 Redis 充当消息队列的案例 。这些产品各有侧重没有绝对的好坏只有适合与否需结合自身需求与产品特征综合考虑 。以下为当前最主流的 3 种 MQ 产品对比MQ 产品开发语言特点与优势适用场景Kafka/追求高吞吐量性能卓越单机吞吐可达十万级在日志领域比较成熟但功能较为简单 。首选用于日志收集和传输 。RocketMQJava由阿里开源并捐赠给 Apache 借鉴了 Kafka 并做出改进经历过多年双十一洗礼在可用性、可靠性及稳定性上表现出色 。缺点是支持的客户端语言不多社区活跃度一般 。适合对于可靠性要求比较高且并发比较大的场景如互联网金融 。RabbitMQErlangMQ 功能完备几乎支持所有主流语言开源管理界面非常友好性能较好吞吐量能达到万级社区活跃度较高 。比较适合中小型公司数据量没那么大且并发没那么高的场景 。综合考量由于 RabbitMQ 的综合能力较强中小型项目没有极高的高并发需求且 RabbitMQ 社区成熟、管理界面友好因此作为主要学习和使用的对象 。RabbitMQ 介绍RabbitMQ 官网RabbitMQ: One broker to queue them all | RabbitMQ发展历史与背景RabbitMQ 是采用Erlang语言实现 AMQP 的消息中间件最初起源于金融系统领域为了在分布式系统中存储和转发消息而设计 。在此之前虽有微软的 MSMQ、IBM 的 WebSphere 等商业实现但因价格昂贵一般仅应用于大型组织机构 。2006年RabbitMQ 开发始于 2006 年由Rabbit Technologies开发并提供商业支持 。之所以取名为 “Rabbit”是因为兔子行动非常迅速且繁殖力极强创始人们认为这个名字再合适不过 。2010年4月Rabbit Technologies 被 VMware 旗下的 SpringSource 收购 。2013年5月被并入Pivotal公司VMware 与 Pivotal 本质上一家Pivotal 整合了 EMC 的某些资源热门产品还包括 Spring 系列框架 。后续直到后来 Pivotal 将其开源RabbitMQ 才逐渐走向大众 。

相关新闻

最新新闻

Tiva C系列ADC采样序列控制寄存器ADCSSCTL0配置详解与应用实战

Tiva C系列ADC采样序列控制寄存器ADCSSCTL0配置详解与应用实战

1. ADC采样序列控制寄存器ADCSSCTL0深度解析在嵌入式系统开发中,模数转换器(ADC)是实现模拟信号数字化的核心外设。其工作原理基于采样、保持、量化和编码,将连续变化的模拟量转换为离散的数字量。ADC的技术价值在于为微控制器提供…

2026/7/22 10:52:26
MibSPI多缓冲串行接口:解放CPU,实现高效嵌入式数据通信

MibSPI多缓冲串行接口:解放CPU,实现高效嵌入式数据通信

1. 项目概述:为什么我们需要MibSPI?在嵌入式开发领域,串行外设接口(SPI)就像设备之间对话的“方言”,简单直接,效率也高。无论是读取传感器数据、驱动显示屏,还是与外部存储器通信&a…

2026/7/22 10:52:26
深入解析TI MCU的IOMM模块:ADC触发、ePWM同步与安全配置实战

深入解析TI MCU的IOMM模块:ADC触发、ePWM同步与安全配置实战

1. 项目概述:IOMM在嵌入式系统中的核心角色在嵌入式微控制器(MCU)的世界里,引脚资源永远是稀缺的。一颗芯片集成了ADC、PWM、定时器、通信接口等数十种外设,但物理引脚数量却受限于封装尺寸和成本。如何让有限的引脚承…

2026/7/22 10:52:26
深入解析Tiva™ TM4C129以太网MAC寄存器:中断、地址过滤与MMC实战

深入解析Tiva™ TM4C129以太网MAC寄存器:中断、地址过滤与MMC实战

1. 项目概述与核心价值在嵌入式系统开发,尤其是涉及网络通信的工控、车载或物联网设备中,以太网MAC(媒体访问控制)层的配置往往是驱动开发中最具挑战性的一环。很多开发者习惯于依赖现成的协议栈或驱动库,对底层寄存器…

2026/7/22 10:52:26
提升效率的实用网站推荐与使用技巧

提升效率的实用网站推荐与使用技巧

1. 项目概述作为一名长期活跃在互联网行业的从业者,我经常需要收集和整理各类实用网站资源。这些网站就像工具箱里的各种工具,每个都有其独特的用途和价值。今天要分享的这个项目,是我在日常工作中积累的第二批实用网站清单(继之前…

2026/7/22 10:52:26
LSTM参数详解:从input_size到bidirectional的完整配置指南

LSTM参数详解:从input_size到bidirectional的完整配置指南

在深度学习项目中处理序列数据时,LSTM(长短期记忆网络)是绕不开的核心组件。很多开发者在初次使用PyTorch或TensorFlow中的LSTM API时,会被一堆参数搞得一头雾水——input_size、hidden_size、num_layers、batch_first等参数到底应…

2026/7/22 10:47:26

月新闻