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

RabbitMQ 入门与安装

RabbitMQ 入门与安装从 MQ 概念到环境搭建一、开篇学习 RabbitMQ 前需要准备什么RabbitMQ 属于消息中间件是 Java 后端开发中非常常见的一类基础组件。学习它之前最好已经具备以下基础具备一定 Java 基础掌握 Spring Boot 的基本使用了解 Linux 常见命令本地或服务器环境中准备好 JDK 17有一台 Linux 服务器Ubuntu 或 CentOS 都可以。从后端面试和实际项目角度看MQ 并不是一个孤立知识点。它经常和分布式系统、异步任务、削峰填谷、系统解耦、订单超时处理、消息可靠性等场景一起出现。因此学习 RabbitMQ 不只是为了会写几行收发消息的代码更重要的是理解为什么系统需要消息队列以及消息队列在架构中解决了什么问题。二、RabbitMQ 概述RabbitMQ 是一个实现了 AMQP 协议的消息队列服务也是目前主流的消息中间件之一。AMQP全称是 Advanced Message Queuing Protocol即高级消息队列协议。它是一个面向消息中间件设计的应用层协议目标是提供统一的消息传递规范。基于 AMQP客户端和消息中间件之间可以传递消息并且不强绑定具体开发语言或具体中间件实现。RabbitMQ 使用 Erlang 语言开发最初起源于金融系统领域用来在分布式系统中存储和转发消息。它后来逐渐走向开源和大众化在易用性、扩展性、可靠性、高可用性等方面都有比较成熟的表现。三、什么是 MQMQ 是 Message Queue 的缩写直译就是消息队列。从字面上理解它本质上是一个队列符合 FIFO也就是先进先出的特点。只不过队列里存放的不是普通数据结构里的元素而是一条条消息。消息可以很简单比如字符串、JSON也可以比较复杂比如包含业务对象、状态、事件类型等结构化内容。在分布式系统中系统之间的调用通常可以分成两类同步通信一个系统直接调用另一个系统的服务请求发出后需要等待对方处理并返回结果。比如 A 系统调用 B 系统接口B 系统返回结果后A 系统才能继续往下执行。异步通信一个系统把数据先发送到某个中间容器中另一个系统在合适的时机再从这个容器中取出并处理。MQ 就是这个“中间容器”的典型实现。RabbitMQ 就是 MQ 的一种具体实现。四、MQ 的核心作用MQ 的主要工作是接收消息、存储消息、转发消息。不同业务场景下它能发挥不同作用。可以把 MQ 想象成一个仓库。采购部门把零件放进仓库生产部门从仓库取出零件加工成产品。仓库存储和转交的是物品而 MQ 存储和转交的是消息。1. 异步解耦在业务流程中有些操作比较耗时但不一定需要立刻完成。例如用户注册成功后系统可能还需要发送短信、发送邮件、初始化积分账户等。如果所有操作都同步执行用户就必须等这些流程全部结束后才能看到“注册成功”。这会拉长响应时间也会让主流程依赖多个外部服务。引入 MQ 后注册服务可以先完成核心注册逻辑然后向 MQ 投递一条“用户已注册”的消息。短信服务、邮件服务再异步消费这条消息。这样主流程更轻系统之间的耦合也更低。2. 流量削峰秒杀、促销、抢购这类场景下短时间内可能涌入大量请求。如果后端服务直接承接所有流量很容易把数据库或业务服务打崩。使用 MQ 后请求可以先进入队列排队后端服务再按照自身处理能力逐步消费。这样可以把瞬时高峰变成相对平缓的处理过程降低系统被突发流量压垮的风险。3. 消息分发当多个系统都需要对同一件事情做出响应时MQ 可以充当消息分发中心。例如支付成功后订单系统需要修改订单状态积分系统需要增加积分库存系统需要扣减库存通知系统需要发送消息。如果支付系统直接调用这些系统就会越来越复杂。更好的方式是支付系统只向 MQ 投递一条“支付成功”消息其他系统订阅并处理自己关心的逻辑。4. 延迟通知有些业务需要在一段时间之后再执行。例如电商平台中用户下单后如果一定时间内没有支付系统需要自动取消订单。这个场景可以借助延迟消息或延迟队列实现下单时发送一条延迟消息到期后检查订单状态如果仍未支付就执行取消操作。五、为什么选择 RabbitMQ业界常见的 MQ 产品有 RabbitMQ、RocketMQ、Kafka、ActiveMQ、ZeroMQ 等也有一些场景会直接使用 Redis 充当轻量消息队列。这些产品没有绝对的好坏只有适不适合业务场景。KafkaKafka 最初主要面向日志收集和传输追求高吞吐量性能非常强单机吞吐量可以达到很高水平。它在日志采集、流式数据处理等领域非常成熟。如果核心需求是日志采集、大数据链路或高吞吐消息流Kafka 往往是优先选择。RocketMQRocketMQ 使用 Java 开发由阿里巴巴开源后来捐赠给 Apache。它借鉴了 Kafka 的设计并针对高可用、可靠性、稳定性做了很多增强经过大规模业务场景验证。如果系统对消息可靠性要求高同时并发量较大例如互联网金融、大型交易系统等RocketMQ 是很有竞争力的选择。RabbitMQRabbitMQ 使用 Erlang 开发功能比较完整支持几乎所有主流语言管理界面友好社区活跃度较高吞吐能力也能满足很多中小型业务系统。对于数据量不是极端庞大、并发不是特别夸张、又希望快速上手并使用成熟管理界面的项目来说RabbitMQ 是一个综合能力很强的选择。六、RabbitMQ 安装RabbitMQ 的安装方式有多种。课件中主要介绍了 Ubuntu 安装、CentOS 安装、Docker 安装以及一些常见服务操作。在安装 RabbitMQ 前要注意一个关键点RabbitMQ 依赖 Erlang 环境因此安装 RabbitMQ 前需要先安装 Erlang并且 Erlang 版本需要和 RabbitMQ 版本匹配。1. Ubuntu 环境安装Ubuntu 标准仓库中已经包含 RabbitMQ但仓库版本可能比 RabbitMQ 官方最新版本落后。学习阶段可以先使用 Ubuntu 仓库版本快速安装。安装 Erlangsudoapt-getupdatesudoapt-getinstallerlang查看 Erlang 是否安装成功erl进入 Erlang Shell 后可以使用下面命令退出halt().安装 RabbitMQsudoapt-getupdatesudoapt-getinstallrabbitmq-server systemctl status rabbitmq-server如果状态中显示active (running)说明 RabbitMQ 服务已经正常运行。启用管理界面RabbitMQ 默认不会开启 Web 管理界面需要手动启用插件rabbitmq-pluginsenablerabbitmq_management启用成功后默认管理端口是15672浏览器访问http://服务器IP:15672/需要注意云服务器要在安全组或防火墙中放行15672端口。RabbitMQ 从 3.3.0 开始限制guest/guest用户只能从 localhost 登录因此远程访问时建议创建新的管理员用户。添加管理员用户rabbitmqctl add_user admin admin rabbitmqctl set_user_tags admin administrator这里创建了用户名为admin、密码为admin的用户并授予administrator管理员角色。实际生产环境中不建议使用过于简单的密码。2. CentOS 环境安装CentOS 安装方式通常使用 rpm 包。安装前可以先确认系统版本cat/etc/redhat-release安装 Erlang可以从 RabbitMQ 官方推荐的 packagecloud 仓库下载 Erlang rpm 包。下载时要注意系统版本例如 el7 对应 CentOS 7el8 对应 CentOS 8。安装示例yum localinstall erlang-23.3.4.11-1.el7.x86_64.rpm安装完成后验证erl安装 RabbitMQ同样先下载匹配版本的 RabbitMQ Server rpm 包然后导入签名密钥并安装rpm--importhttps://www.rabbitmq.com/rabbitmq-release-signing-key.asc yum localinstall rabbitmq-server-3.8.30-1.el7.noarch.rpm启用管理界面并启动服务rabbitmq-pluginsenablerabbitmq_managementservicerabbitmq-server startservicerabbitmq-server status访问管理界面http://服务器IP:15672/同样建议创建管理员用户rabbitmqctl add_user admin admin rabbitmqctl set_user_tags admin administrator3. Docker 安装如果只是学习和本地测试Docker 是非常方便的方式。推荐直接使用带管理界面的镜像版本dockerpull rabbitmq:managementdockerrun-d-p5672:5672-p15672:15672--namerabbitmq rabbitmq:managementdockerps这里有两个重要端口5672RabbitMQ 客户端通信端口应用程序连接 RabbitMQ 时通常使用它15672RabbitMQ Web 管理界面端口。启动后访问http://服务器IP:15672/Docker 方式下可以进入容器内部创建管理员用户dockerexec-it容器ID /bin/bash rabbitmqctl add_user admin admin rabbitmqctl set_user_tags admin administrator七、常见服务操作Ubuntu 常用命令sudosystemctl start rabbitmq-serversudosystemctl stop rabbitmq-serversudosystemctl restart rabbitmq-serversudosystemctlenablerabbitmq-serversudosystemctl status rabbitmq-serverCentOS 常用命令servicerabbitmq-server startsudosystemctl stop rabbitmq-serverservicerabbitmq-server restartchkconfigrabbitmq-server on修改默认端口RabbitMQ 默认客户端端口是5672管理界面端口是15672。如果需要修改可以在/etc/rabbitmq/rabbitmq.conf中添加类似配置listeners.tcp.default8942 management.tcp.port8943然后重启 RabbitMQ 服务sudosystemctl restart rabbitmq-server或者在 CentOS 中sudoservicerabbitmq-server restart八、卸载 RabbitMQ如果需要重新安装可以先卸载旧版本。Ubuntu 卸载sudosystemctl stop rabbitmq-server dpkg-l|greprabbitmqsudoapt-getpurge --auto-remove rabbitmq-server dpkg-l|greperlangsudoapt-getpurge --auto-remove erlangCentOS 卸载servicerabbitmq-server stop yum list|greprabbitmq yum-yremove rabbitmq-server.noarchrm-rf/var/lib/rabbitmq/rm-rf/usr/local/rabbitmq yum list|greperlang yum-yremove erlang.x86_64卸载时要谨慎执行删除命令特别是/var/lib/rabbitmq/目录中可能包含 RabbitMQ 的持久化数据。九、小结RabbitMQ 的学习可以分成三步先理解 MQ 解决的问题异步解耦、流量削峰、消息分发、延迟通知再理解 RabbitMQ 的定位它是实现 AMQP 协议的成熟消息中间件功能完整、管理界面友好、社区成熟最后把环境跑起来先装 Erlang再装 RabbitMQ开启管理插件创建管理员用户并确认5672和15672两个端口可用。掌握这些内容后就可以继续学习 RabbitMQ 的核心模型例如生产者、消费者、交换机、队列、绑定关系、消息确认机制等。真正理解这些概念之后RabbitMQ 就不再只是一个“会安装的软件”而会变成分布式系统里非常实用的一块基础设施。

相关文章:

RabbitMQ 入门与安装

RabbitMQ 入门与安装:从 MQ 概念到环境搭建 一、开篇:学习 RabbitMQ 前需要准备什么 RabbitMQ 属于消息中间件,是 Java 后端开发中非常常见的一类基础组件。学习它之前,最好已经具备以下基础: 具备一定 Java 基础&…...

用 Excel 手算一个 1-6-1 MLP:前向传播、损失、反向传播与参数更新

计算示例:本文用一个单输入、6 个隐藏神经元、单输出的多层感知机(MLP)作为例子,展示如何用 Excel 公式完整复现一次训练迭代。配套 Excel 文件中的“MLP计算过程”工作表已经把前向传播、损失计算、反向传播梯度和参数更新全部写…...

3步快速上手:抖音去水印批量下载器完整指南

3步快速上手:抖音去水印批量下载器完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…...

B站视频下载终极指南:5步掌握免费批量下载技巧

B站视频下载终极指南:5步掌握免费批量下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…...

百考通:AI一键生成期刊论文写作,全流程智能化支撑,让学术创作更高效

在学术研究领域,期刊论文的撰写是成果输出的关键环节,却也让众多科研工作者与学生倍感压力:选题迷茫、逻辑梳理困难、格式规范复杂、内容提炼耗时,严重拖慢了学术成果的发表节奏。百考通(https://www.baikaotongai.com…...

Midscene.js技术深度解析:视觉驱动UI自动化的架构演进与实践路径

Midscene.js技术深度解析:视觉驱动UI自动化的架构演进与实践路径 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在传统UI自动化测试领域&#xff0c…...

深信服发布AI算力网关,聚焦AI算力治理,让AI算力效能更高

中国AI产业正在全面爆发,各行业的Agent应用发展更是迅猛。对企业来说,管好这些Agent并不容易,首先难算清的就是“成本账”——算力使用情况看不清、Token资源浪费管不住、AI投入省不下。为了帮助各行业用户实现AI模型和算力的高效治理&#x…...

Spek音频频谱分析器:如何免费快速可视化音频频率的秘密世界

Spek音频频谱分析器:如何免费快速可视化音频频率的秘密世界 【免费下载链接】spek Acoustic spectrum analyser 项目地址: https://gitcode.com/gh_mirrors/sp/spek Spek是一款功能强大的开源音频频谱分析工具,能够将复杂的音频信号转换为直观的彩…...

+86环境下“纸飞机“登录异常排查:第三方开源客户端的认证与网络适配测试

近期在针对一款基于 MTProto 协议的即时通讯工具进行客户端适配测试时,发现其官方版本在 86 号段环境下存在较为突出的登录与连接稳定性问题。本文记录问题复现过程,以及基于开源代码二次开发的优化实践。一、登录异常现象在 86 手机号、新设备登录场景下…...

SQL 排序分页精讲!ORDER BY+LIMIT 全套用法,报表分页

前言学会了条件查询、模糊查询之后,日常业务还有两个刚需场景:查出来的数据杂乱无章,想按年龄、时间、金额从小到大 / 从大到小排序;数据有成千上万条,一次性加载全部卡死,需要分页展示,一页只展…...

曼德勃罗集的 Three.js 实现

效果预览 经典的曼德勃罗集(Mandelbrot Set)分形渲染,配合动态缩放动画探索分形边界的无限细节。使用线性插值平滑着色,呈现出彩虹般的色彩过渡。 👉 点击查看《曼德勃罗集的》完整源码与效果演示 Shader 实现原理…...

SQL 模糊查询 + NULL 空值。LIKE 通配符 % 和_、IS NULL

前言学会精准条件查询后,工作中又会遇到新难题:需要按关键词模糊搜索,比如搜姓张、名字带 “明” 的用户,不会写 LIKE;分不清 % 和 _ 两个通配符到底有什么区别,经常用错;数据表有空值 NULL&…...

三国杀卡牌DIY终极指南:5分钟打造你的专属武将

三国杀卡牌DIY终极指南:5分钟打造你的专属武将 【免费下载链接】Lyciumaker 在线三国杀卡牌制作器 项目地址: https://gitcode.com/gh_mirrors/ly/Lyciumaker 还在羡慕别人能设计出酷炫的三国杀武将卡牌吗?Lyciumaker这个免费开源的三国杀卡牌制作…...

让Windows 11任务栏唱歌:Taskbar-Lyrics插件如何改变你的音乐体验

让Windows 11任务栏唱歌:Taskbar-Lyrics插件如何改变你的音乐体验 【免费下载链接】Taskbar-Lyrics BetterNCM插件,在任务栏上嵌入歌词,目前仅建议Windows 11 项目地址: https://gitcode.com/gh_mirrors/ta/Taskbar-Lyrics 还在为切换…...

C语言学习笔记20260522—交换两个整数的值(地址传递)/打印1-100直接3倍数的数字/两个数最大公约数(最小公倍数)

一.知识点 函数需要改变实参时,必要要用地址传递,不能用值传递。当一个数%比自己大的数是,%的值就是自己本身。数辗转相除法(欧几里得算法)求两个数的最大公约数。两个数的最小公倍数为两个数的乘积除以最大公约数。 二…...

数据库锁机制:表锁、行锁(Oracle 默认)、共享锁、排他锁、乐观锁、悲观锁、死锁、Hive 中的锁

数据库锁机制是控制并发访问数据的关键技术。本文系统介绍了锁的概念、分类和应用场景:1)锁通过限制并发访问确保数据一致性,类比厕所门锁机制;2)按粒度分为表锁(适合批量操作)、行锁&#xff0…...

GEO学习能帮我提高AI搜索排名吗?

先直接回答这个问题:GEO不叫"排名",但效果比排名更直接。如果你理解了这句话,你就理解了GEO和SEO的本质区别。AI搜索没有"排名",只有"引用"传统SEO优化的目标是在搜索结果页面占据靠前位置——第几…...

CANN Rotary Embedding 融合算子:解锁千问大模型推理性能的 3 倍密钥

CANN Rotary Embedding 融合算子:解锁千问大模型推理性能的 3 倍密钥 导语:在大模型推理的“微操”中,位置编码(Positional Encoding)往往被视为理所当然的开销。然而,在昇腾(Ascend&#xff0…...

DeepSeek V2安全对齐能力深度拆解(含对抗攻击测试报告+合规审计清单)

更多请点击: https://codechina.net 第一章:DeepSeek V2安全对齐能力深度拆解(含对抗攻击测试报告合规审计清单) DeepSeek V2 在设计阶段即嵌入多层安全对齐机制,涵盖输入过滤、策略蒸馏、响应重加权与后验校验四大核…...

Agent 场景落地:从概念演示到真实服务

当下 Agent 概念火热,但多数仍停留在实验室演示、概念展示阶段:发布会效果惊艳,却难以真正走进银行、门店、家庭等真实服务场景,解决实际问题。 行业共识逐渐清晰:Agent 的价值不在酷炫演示,而在真实场景里…...

Veo生成模糊/断帧/色偏?立刻停用默认设置!20年视频架构师紧急发布的5项必改Veo 2K/4K硬核配置

更多请点击: https://intelliparadigm.com 第一章:Veo 2K/4K视频生成质量崩塌的根源诊断 当Veo模型在2K或4K分辨率下输出视频时,高频细节严重丢失、运动伪影显著增强、纹理结构模糊化,这一现象并非单纯算力不足所致,而…...

如何为你的推特内容创作工具配置Taotoken大模型API

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为你的推特内容创作工具配置Taotoken大模型API 假设你是一名社交媒体运营者,正在使用或开发一个自动生成推特文案的…...

终极免费方案:5分钟破解Cursor AI试用限制,永久享受Pro功能

终极免费方案:5分钟破解Cursor AI试用限制,永久享受Pro功能 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve …...

【ChatGPT SEO写作黄金法则】:20年SEO专家亲授7大不可绕过的AI内容合规红线

更多请点击: https://kaifayun.com 第一章:ChatGPT SEO写作的底层逻辑与合规本质 ChatGPT SEO写作并非简单地将关键词堆砌进AI生成文本,其底层逻辑建立在三重耦合关系之上:搜索引擎语义理解机制、用户真实搜索意图建模&#xff0…...

NotebookLM效应量计算合规性危机:FDA/EMA/NMPA最新AI辅助研究指南对效应量报告的强制性要求(附自查清单V2.3)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM效应量计算合规性危机的定义与背景 NotebookLM 效应量计算合规性危机,是指当研究者在使用 Google NotebookLM(一款基于 LLM 的文档理解与推理工具)辅助开展…...

React 从入门到生产(五):状态管理选型

创作者: Yardon | GitHub: github.com/YardonYan | 版本: v1.0 什么时候需要状态管理 先泼一盆冷水:大多数 React 应用不需要 Redux。 这句话不是我说的,是 Redux 的作者 Dan Abramov 本人说的。他在 2020 年就公…...

哪个工具能降重降AI?亲测知网维普aigc检测效果,重复率和ai率不到10%!

2025 年 12 月 25 日知网 AIGC 检测系统升级,2026 年 4 月 27 日维普 AI 率检测平台升级…2026 毕业季,各大主流 AIGC 检测软件陆续升级系统,识别 AI 痕迹更加精准。 临近毕业,同学们看者飘红的 AIGC 检测报告、纷繁复杂的降 AI 系…...

Ender-3固件配置终极指南:从新手到高手的完整教程

Ender-3固件配置终极指南:从新手到高手的完整教程 【免费下载链接】Ender-3 The Creality3D Ender-3, a fully Open Source 3D printer perfect for new users on a budget. 项目地址: https://gitcode.com/gh_mirrors/en/Ender-3 Ender-3 3D打印机是一款广受…...

Git从入门到工作流:GitLab私有仓库最佳实践(SSH免密、.DS_Store全局忽略)

本文将带你从零开始配置GitLab私有仓库,涵盖SSH密钥免密登录、本地仓库初始化与推送、以及macOS下.DS_Store文件的全局忽略与清理。每一步都有命令和解释,适合新手和想规范Git工作流的开发者。 一、注册GitLab账号并创建私有仓库 1. 注册账号 访问 Git…...

2026 AI 培训机构怎么选?6 类人群精准匹配 + 避坑指南

随着大模型、多模态、RAG、Agent 技术持续迭代,企业对于 AI 算法开发、计算机视觉、自然语言处理、工程落地类人才的需求持续上涨。目前国内主流AI学习平台包含咕泡科技、科大讯飞AI大学堂、腾讯云智学堂、深兰科技人工智能教育等,各家平台技术侧重点、课…...