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

RabbitMQ升级打怪之路(1) - RabbitMQ概述

目录

1. RabbitMQ概述

前言

什么是MQ

MQ的作用

主要核心作用:

为什么选择RabbitMQ

RabbitMQ 介绍

发展历史与背景


1. RabbitMQ概述

前言

在互联网行业中,许多公司都喜欢用动物命名产品,或者作为公司的logo和吉祥物 。例如:腾讯的企鹅、京东的狗、美团的袋鼠、携程的海豚,而阿里更是拥有蚂蚁、飞猪、天猫、菜鸟、闲鱼、盒马等,以一己之力组建了一个“动物园” 。

Rabbit同样也是一个公司名 。MQ(Message Queue)是消息队列的意思,而RabbitMQ就是 Rabbit 企业下的一个消息队列产品 。

RabbitMQ 是一个实现了AMQP的消息队列服务,是当前主流的消息中间件之一 。

AMQP (Advanced Message Queuing Protocol,高级消息队列协议):是一个通用的应用层协议,提供统一的消息服务,专为面向消息的中间件设计 。基于此协议的客户端与消息中间件可传递消息,并不受客户端或中间件、开发语言等条件的限制 。

什么是MQ

MQ(Message 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

/

追求高吞吐量,性能卓越,单机吞吐可达十万级;在日志领域比较成熟,但功能较为简单 。

首选用于日志收集和传输 。

RocketMQ

Java

由阿里开源并捐赠给 Apache ;借鉴了 Kafka 并做出改进,经历过多年双十一洗礼,在可用性、可靠性及稳定性上表现出色 。缺点是支持的客户端语言不多,社区活跃度一般 。

适合对于可靠性要求比较高,且并发比较大的场景(如互联网金融) 。

RabbitMQ

Erlang

MQ 功能完备,几乎支持所有主流语言,开源管理界面非常友好,性能较好,吞吐量能达到万级,社区活跃度较高 。

比较适合中小型公司,数据量没那么大且并发没那么高的场景 。

综合考量:由于 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 才逐渐走向大众 。
http://www.jsqmd.com/news/1222340/

相关文章:

  • 湖北现代科技学校专业介绍之中医康复技术专业(报名指南) - 武汉中职最新信息发布
  • 企业级AI决策系统:可计量PL影响与治理就绪型证据设计
  • 新疆旅游怎么玩不累?过来人亲测:告别赶路疲惫,新手懒人松弛玩法 - 旅行分享
  • 软件开发常用模块分类与实战应用指南
  • EventBus在Android开发中的核心应用与优化实践
  • 2026年厦门宠物店哪家可靠?实用挑选指南建议提前收藏 指南避雷 - 同城大型猫犬舍
  • 锂电池智能充电器使用指南:从原理到实践,避免常见误区
  • 新疆达仁堂国药文化馆:百年老字号的国药靠谱之选 - 互联网科技品牌测评
  • 湖北人才公寓联网智能锁厂家深度评测:集中管控场景下的技术路线与选型观察 - 品牌评测官
  • 2026 年 7 月新发布:彬县有实力的卷扬启闭机加工厂哪家靠谱,别再浪费时间!这台设备如何颠覆你的生产流程? - 企业推荐官【认证】
  • Android CLI 完全指南:从入门到精通
  • JavaScript事件监听详解|从点击修改文字到随机背景色(新手实战教程)
  • 嵌入式系统性能优化:DMA与多媒体加速器架构解析
  • 2026年7月最新卡地亚西安西咸万象城维修保养服务电话 - 卡地亚官方售后中心
  • 广州工业设备服务GEO城市合伙人选型推荐哪家靠谱:源头技术、分润模式与合伙人权益一次看清 - 子柔传媒
  • 2026年泉州清源山十大山居住宿优选榜单:深度评测与避坑指南 - 热点速览
  • 亲身到店探访广州泰格豪雅官方售后服务中心|最新地址与24小时售后热线(2026年7月最新) - 亨得利官方服务中心
  • DeepSeek V4灰度测试、马斯克Grok 4.6下周开测、上海AI实验室Intern-S2击败Opus4.8 | 7月18日 AI日报
  • Python核心模块分类与使用指南
  • 嵌入式开发核心:NFS服务器搭建与板端挂载共享目录
  • 数学公理体系大全:第十七章 希尔伯特平面几何公理全貌
  • 2026 年更新:辛集可靠的锻铜雕塑制造商推荐几家,揭秘:顶级铜雕的秘密工艺曝光 - 企业官方推荐【认证】
  • JavaMail核心功能与实战应用详解
  • Android UI开发核心技巧与性能优化实践
  • 广州家居建材材料服务GEO城市合伙人选型推荐哪家靠谱:源头厂商能力、合伙人权益与分润模式一次看清 - 小随科技
  • 长期业务外包服务商怎么选?2026年企业级服务十大品牌实力榜 - 增长观测局
  • 品质升级:2026大金空调开启24小时售后服务人工电话400号码全天在线 - 热点速览
  • 2026南通活体宠物售卖商家实测测评长文|本地购宠避坑科普完整版 - 同城宠物优选基地
  • 7.19学习总结
  • 2026年7月重庆装修口碑榜:头部标杆与中等资质企业对比,哪家更稳妥? - 互联网科技品牌测评