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

【RaddbitMQ 概述】消息中间件核心概念

文章目录1. 前言2. 什么是 MQ2.1 同步通信2.2 异步通信3. MQ 的作用3.1 异步解耦3.2 流量削峰3.3 消息分发3.4 延迟通知4. 为什么选择 RabbitMQ4.1 Kafka4.2 RocketMQ4.3 RabbitMQ5. RabbitMQ介绍1. 前言Rabbit兔子的意思。互联网行业很多公司都喜欢用动物命名产品或者作为公司的 logo、吉祥物。比如腾讯的企鹅京东的狗美团的袋鼠携程的海豚阿里就更多了蚂蚁飞猪天猫菜鸟闲鱼盒马……更是以一己之力组建了一个动物园……Rabbit 也是一个公司名。MQmessage queue消息队列的意思RabbitMQ 是 Rabbit 企业下的一个消息队列产品。RabbitMQ 是一个实现了 AMQP 的消息队列服务是当前主流的消息中间件之一。AMQP即Advanced Message Queuing Protocol高级消息队列协议是一个通用的应用层协议提供统一消息服务的协议为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息并不受客户端或中间件开发语言等条件的限制。在互联网架构中会经常使用 MQ 来作为消息通信服务。接下来我们看下什么是 MQ。2. 什么是 MQMQMessage queue从字面意思上看本质是个队列FIFO 先入先出只不过队列中存放的内容是消息message而已。消息可以非常简单比如只包含文本字符串、JSON 等也可以很复杂比如内嵌对象。MQ 多用于分布式系统之间进行通信。系统之间的调用通常有两种方式同步通信 与 异步通信。2.1 同步通信定义直接调用对方的服务数据从一端发出后立即就可以达到另一端。如下图所示2.2 异步通信定义数据从一端发出后先进入一个容器进行临时存储当达到某种条件后再由这个容器发送给另一端。容器的一个具体实现就是 MQmessage queue如下图所示而 RabbitMQ 就是 MQ 的一种实现。3. MQ 的作用MQ 主要工作是接收并转发消息在不同的应用场景下可以展现不同的作用。比如可以把 MQ 想象成一个仓库。采购部门进货之后把零件放进仓库里生产部门从仓库中取出零件并加工成产品。MQ 和仓库的区别是仓库里放的是物品MQ 里放的是消息仓库负责存储物品并转发物品MQ 负责存储和转发消息。如下图所示它的作用如下。3.1 异步解耦在业务流程中一些操作可能非常耗时但并不需要即时返回结果。可以借助 MQ 把这些操作来进行异步化。比如用户注册后发送注册短信或邮件通知可以作为异步任务处理而不必等待这些操作完成后才告知用户注册成功。3.2 流量削峰在访问量剧增的情况下应用仍然需要继续发挥作用但是这样的突发流量并不常见。如果以能处理这类峰值为标准而投入资源无疑是巨大的浪费。使用 MQ 能够使关键组件支撑突发访问压力不会因为突发流量而崩溃。比如秒杀或者促销活动可以使用 MQ 来控制流量将请求排队然后系统根据自己的处理能力逐步处理这些请求。3.3 消息分发当多个系统需要对同一数据做出响应时可以使用 MQ 进行消息分发。比如支付成功后支付系统可以向 MQ 发送消息其他系统订阅该消息而无需轮询数据库。3.4 延迟通知在需要在特定时间后发送通知的场景中可以使用 MQ 的延迟消息功能。比如在电子商务平台中如果用户下单后一定时间内未支付可以使用延迟队列在超时后自动取消订单。4. 为什么选择 RabbitMQ目前业界有很多的 MQ 产品例如 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ 等也有直接使用 Redis 充当消息队列的案例这些消息队列各有侧重也没有好坏只有适合不适合在实际选型时需要结合自身需求以及 MQ 产品特征综合考虑。以下我们介绍一下当前最主流的 3 种 MQ 产品。4.1 KafkaKafka 一开始的目的就是用于日志收集和传输追求高吞吐量性能卓越单机吞吐达到十万级在日志领域比较成熟功能较为简单主要支持简单的 MQ 功能如果有日志采集需求肯定是首选 kafka 了。4.2 RocketMQRocketMQ 采用 Java 语言开发由阿里巴巴开源后捐赠给了 Apache。它在设计时借鉴了 Kafka并做出了一些自己的改进青出于蓝而胜于蓝经过多年双十一的洗礼在可用性、可靠性以及稳定性等方面都有出色的表现。适合对于可靠性比较高且并发比较大的场景比如互联网金融。但支持的客户端语言不多且社区活跃度一般。4.3 RabbitMQ采用 Erlang 语言开发MQ 功能比较完备且几乎支持所有主流语言开源提供的界面也非常友好性能较好吞吐量能达到万级社区活跃度也比较高比较适合中小型公司数据量没那么大且并发没那么高的场景。综合由于 RabbitMQ 的综合能力较强且 RabbitMQ 社区比较成熟管理界面友好所以咱们接下来主要学习 RabbitMQ 的使用。5. RabbitMQ介绍可以去访问 RabbitMQ 官网 查看详情。RabbitMQ 是采用 Erlang 语言实现 AMQPAdvanced Message Queuing Protocol高级消息队列协议的消息中间件它最初起源于金融系统领域为了在分布式系统中存储和转发消息而设计的。在此之前有一些消息中间件的商业实现比如微软的 MSMQMicroSoft Message QueueIBM 的 WebSphere 等。但是他们价格太贵了一般只应用于大型组织机构。RabbitMQ 开发始于 2006 年是由 Rabbit Technologies 开发并且提供商业支持的。之所以取名为 Rabbit是因为兔子行动非常迅速且繁殖起来非常疯狂RabbitMQ 的开创者认为这个名字再合适不过了。2010年4月Rabbit Technologies 被 VMware 旗下的 SpringSource 收购在2013年5月被并入 Pivotal。其实 VMwarePivotal 本质上是一家的。不同的是VMware 是独立上市子公司而 Pivotal 是整合了 EMC 的某些资源其中我们现在使用的 Spring 系列框架就是 Pivotal 公司热门的产品之一。直到后来 Pivotal 将其开源RabbitMQ 才逐渐走向大众RabbitMQ 发展到今天已经被越来越多的人认可尤其是互联网公司已经有着大规模的场景应用这和它在易用性扩展性可靠性和高可用性等方面的卓越表现是分不开的。接下来我们就一起来深入了解一下 RabbitMQ。

相关文章:

【RaddbitMQ 概述】消息中间件核心概念

文章目录1. 前言2. 什么是 MQ2.1 同步通信2.2 异步通信3. MQ 的作用3.1 异步解耦3.2 流量削峰3.3 消息分发3.4 延迟通知4. 为什么选择 RabbitMQ4.1 Kafka4.2 RocketMQ4.3 RabbitMQ5. RabbitMQ介绍1. 前言 Rabbit,兔子的意思。 互联网行业很多公司,都喜…...

前端构建部署优化

前端构建部署优化:提升效率的关键策略 在当今快节奏的互联网开发中,前端构建和部署的效率直接影响产品的迭代速度和用户体验。随着项目规模扩大,构建时间变长、资源加载缓慢等问题逐渐凸显。如何通过优化手段提升构建部署效率,成…...

手把手教你部署Fun-ASR语音识别:Web界面操作,小白也能快速上手

手把手教你部署Fun-ASR语音识别:Web界面操作,小白也能快速上手 1. 引言 1.1 学习目标 今天咱们来聊聊一个特别实用的工具——Fun-ASR语音识别模型。你可能听说过语音识别,但总觉得这东西离自己很远,要么需要复杂的编程&#xf…...

LiuJuan20260223Zimage效果可视化:生成图分辨率、细节还原度、风格一致性实测报告

LiuJuan20260223Zimage效果可视化:生成图分辨率、细节还原度、风格一致性实测报告 1. 引言:当AI画笔遇见特定风格 你有没有想过,让AI帮你生成特定人物的图片,而且每次生成的效果都高度一致?这听起来像是为设计师或内…...

MySQL Explain 执行计划性能优化

MySQL Explain执行计划性能优化实战指南 在数据库性能优化中,MySQL的Explain执行计划分析是定位SQL性能瓶颈的核心工具。通过解析Explain输出的关键字段,开发者可以快速发现索引失效、全表扫描等问题,从而针对性优化查询效率。本文将深入剖析…...

程序员常见的职业病与预防

程序员职业病与科学预防指南 在数字化浪潮中,程序员成为推动技术进步的核心力量,但长期伏案、高强度用脑的工作模式也带来了独特的健康隐患。从颈椎劳损到用眼过度,这些"职业病"不仅影响工作效率,更可能造成不可逆的身…...

Stable Diffusion v1.5 在内容创作中的应用:快速生成文章插图与创意配图

Stable Diffusion v1.5 在内容创作中的应用:快速生成文章插图与创意配图 如果你是一名内容创作者,无论是写公众号、做视频、发小红书还是维护技术博客,你一定遇到过这样的烦恼:文章写好了,视频脚本完成了,…...

PROJECT MOGFACE跨平台文档生成:替代Typora的智能Markdown写作体验

PROJECT MOGFACE跨平台文档生成:替代Typora的智能Markdown写作体验 如果你和我一样,是个重度Markdown用户,每天都要和文档打交道,那你肯定对Typora不陌生。它简洁、实时预览,一度是很多人的写作首选。但不知道你有没有…...

圣女司幼幽-造相Z-Turbo保姆级教程:cat日志定位问题+Gradio端口映射调试

圣女司幼幽-造相Z-Turbo保姆级教程:cat日志定位问题Gradio端口映射调试 1. 快速了解圣女司幼幽-造相Z-Turbo 圣女司幼幽-造相Z-Turbo是一个专门生成《牧神记》中圣女司幼幽角色图片的AI模型。这个模型基于Z-Image-Turbo的LoRA版本训练而成,能够根据文字…...

GLM-4v-9b多场景落地:教培机构用4090实现课件截图→知识点打标+习题生成

GLM-4v-9b多场景落地:教培机构用4090实现课件截图→知识点打标习题生成 1. 引言:当AI老师走进课堂 想象一下这个场景:一位数学老师刚上完一节关于“二次函数”的课,他手头有几十张课件截图。过去,他需要花一两个小时…...

数据库运维最佳实践

数据库运维最佳实践:保障数据安全与高效运行 在数字化时代,数据库作为企业核心数据的存储和管理平台,其稳定性和安全性直接影响业务连续性。高效的数据库运维不仅能提升系统性能,还能降低故障风险。本文将介绍数据库运维中的关键…...

从零搭建ComfyUI:硬件选型、环境部署与工作流优化实战

1. ComfyUI入门:为什么选择节点式工作流? 第一次打开ComfyUI时,那种密密麻麻的节点连线界面确实容易让人发懵——这和我熟悉的WebUI差别太大了!但用惯之后才发现,这种看似复杂的设计才是真正的生产力工具。就像从Windo…...

Qwen2-VL-2B-Instruct压力测试与性能基准报告

Qwen2-VL-2B-Instruct压力测试与性能基准报告 最近在星图GPU平台上部署了Qwen2-VL-2B-Instruct模型,准备用它来处理一些图文对话任务。部署过程挺顺利,但心里一直有个疑问:这个服务到底能扛住多大的压力?如果同时有很多用户上传图…...

【HBuilderX】快速解决SCSS/Sass预编译错误:插件安装与配置全指南

1. 遇到SCSS/Sass预编译错误怎么办? 第一次在HBuilderX里看到"预编译器错误:代码使用了scss/sass语言,但未安装相应的编译器插件"这个提示时,我也是一头雾水。明明代码在别的编辑器里运行得好好的,怎么到这里…...

一人能顶一支团队?阿里发布全球首个企业级Agent平台“悟空”

3月17日,阿里巴巴发布全球首个企业级AI原生工作平台——“悟空”,让每个团队、每家公司,都能拥有一支24h工作的“龙虾军团”。悟空是一款独立应用,即日起开启邀测,也将直接内置到超2000万企业组织的钉钉之中。拥有8亿用…...

TEB参数优化实战:精准控制机器人半径与运动方向

1. TEB参数优化入门:为什么需要控制机器人半径? 刚接触TEB局部路径规划的朋友可能会疑惑:为什么非要精确控制机器人半径?这得从实际场景说起。想象一下仓储物流机器人在货架间穿行的场景——两侧货架间距可能只有1米左右&#xff…...

Stable Yogi Leather-Dress-Collection 生成速度优化实战:从分钟级到秒级的响应提升

Stable Yogi Leather-Dress-Collection 生成速度优化实战:从分钟级到秒级的响应提升 你是不是也遇到过这种情况?想用AI模型快速生成几张皮革连衣裙的设计图,结果输入描述后,等了快一分钟才出一张图。在创意构思、方案比对的场景下…...

YOLOE镜像使用全解析:文本、视觉、无提示三种模式怎么选

YOLOE镜像使用全解析:文本、视觉、无提示三种模式怎么选 1. YOLOE镜像核心能力概述 YOLOE(You Only Look at Everything)是新一代开放词汇目标检测与分割模型,其官方镜像集成了完整的推理和训练环境。相比传统封闭词汇检测模型&…...

HY-Motion 1.0新手避坑指南:环境配置与Prompt输入全解析

HY-Motion 1.0新手避坑指南:环境配置与Prompt输入全解析 1. 从零开始:环境配置详解 1.1 硬件要求与选择建议 HY-Motion 1.0作为十亿级参数的大模型,对硬件有一定要求。根据官方文档,标准版模型至少需要26GB显存,这意…...

Ostrakon-VL-8B对比YOLOv8:在目标描述与关系推理上的优势分析

Ostrakon-VL-8B对比YOLOv8:在目标描述与关系推理上的优势分析 最近在测试一些视觉模型时,我发现了一个挺有意思的现象。当我把同一张图片分别丢给一个经典的目标检测模型和一个新兴的视觉语言模型时,它们给出的“答案”截然不同。这让我开始…...

Java集成科大讯飞离线语音合成SDK实战指南——从环境搭建到音频生成

1. 环境准备:从零搭建开发环境 第一次接触科大讯飞离线语音合成SDK时,我花了整整两天时间才把环境搭好。现在回想起来,其实只要抓住几个关键点就能少走弯路。首先需要准备的是Java开发环境,推荐使用JDK 8或11版本,这两…...

高性能计算负载均衡

1、非修改序列算法这些算法不会改变它们所操作的容器中的元素。1.1 find 和 find_iffind(begin, end, value):查找第一个等于 value 的元素,返回迭代器(未找到返回 end)。find_if(begin, end, predicate):查找第一个满…...

如何安全地存储用户的密码?(哈希与加盐)

如何安全地存储用户的密码?哈希与加盐的奥秘 在数字化时代,密码是保护用户隐私的第一道防线。许多数据泄露事件暴露了一个残酷的现实:明文存储密码如同将钥匙挂在门上。如何安全地存储密码?答案在于哈希(Hashing&…...

25大数据 2-2 字符串切片

字符串 1.字符串创建:用单引号‘或双引号“来创建,单双引号使用完全相同 2.字符串拼接 3.字符串重复* 4.字符串索引: 正序输出:从左往右以0开始 逆序输出:从右往左以-1开始 5.字符串切片: 变量名[头下标:尾…...

腾讯开源翻译模型体验:Hunyuan-MT-7B网页一键推理,效果惊艳

腾讯开源翻译模型体验:Hunyuan-MT-7B网页一键推理,效果惊艳 1. 模型介绍与技术亮点 1.1 多语言翻译新标杆 Hunyuan-MT-7B是腾讯开源的70亿参数多语言翻译大模型,在WMT25国际翻译比赛中斩获30个语种第一名的优异成绩。这个模型最令人惊艳的…...

Phi-3-mini-128k-instruct实战:使用Qt开发跨平台AI桌面应用

Phi-3-mini-128k-instruct实战:使用Qt开发跨平台AI桌面应用 最近在捣鼓一些本地AI应用,发现很多开发者朋友对如何把大模型塞进自己的桌面程序里很感兴趣。特别是用C和Qt的,总觉得这块门槛有点高。其实没那么复杂,我今天就用微软开…...

SpringBoot与Camunda实战:BPMN流程设计中的监听器机制深度解析

1. 监听器机制在BPMN流程中的核心价值 当你第一次接触Camunda流程引擎时,可能会被各种监听器类型绕晕。但我要告诉你,监听器就像是流程节点的"智能管家",它能帮你实现90%的动态流程控制需求。我在金融风控系统项目中,就…...

MTK DRM显示框架下的多屏兼容实战:从LK到Kernel的完整链路解析

1. MTK DRM显示框架与多屏兼容概述 在嵌入式设备开发中,显示系统的兼容性一直是工程师面临的核心挑战之一。MTK平台采用的DRM(Direct Rendering Manager)显示框架,为多屏幕适配提供了标准化的解决方案。这套框架从Bootloader阶段&…...

PROJECT MOGFACE LaTeX写作助手:学术论文智能排版与公式校对

PROJECT MOGFACE LaTeX写作助手:学术论文智能排版与公式校对 写论文,尤其是理工科的论文,最头疼的是什么?对我来说,不是想不出创新点,而是跟LaTeX斗智斗勇。一个复杂的表格,调格式调半小时&…...

从部署到对话:Qwen3-0.6B-FP8图文并茂的完整操作流程

从部署到对话:Qwen3-0.6B-FP8图文并茂的完整操作流程 1. 开篇:为什么选择Qwen3-0.6B-FP8? 如果你正在寻找一个能在普通电脑上流畅运行,同时又能干点“聪明事”的AI模型,那么Qwen3-0.6B-FP8很可能就是你的菜。 想象一…...