mac安装RabbitMQ

什么是RabbitMQ?

从技术上讲,RabbitMQ是一个实现了 AMQP(高级消息队列协议) 的开源消息代理软件(也叫消息中间件)。

它采用 Erlang语言 编写,天生具备高并发、高性能 和高可靠性的特点。并且,主流的编程语言(如Java、Python、Go等)都有对应的客户端库,可以方便地接入。

它能解决什么问题?

在分布式系统中,服务间的直接调用(同步通信)会带来很多麻烦。RabbitMQ通过"异步"的方式,主要解决了以下核心痛点:

  1. 系统解耦:在秒杀场景中,如果订单系统直接调用库存系统,库存系统一旦故障,就会导致下单失败。引入RabbitMQ后,订单系统只需把"下单"消息放入队列,库存系统自己去拿即可。就算库存系统出问题,也不影响用户下单,实现了服务间的解耦。

  2. 异步通信:比如用户注册时,发送邮件和短信并非核心流程。如果用RabbitMQ,系统在注册成功后,直接发送两条消息到队列就立刻返回"注册成功",让邮件和短信服务在后台异步处理,极大提升了用户体验。

  3. 流量削峰:面对双11、抢票这类突发流量,RabbitMQ就像一个"缓冲大坝"。它将海量请求先暂存在队列中,后端业务系统再根据自己的处理速度,慢慢从队列里取任务处理,从而保护后端服务不被冲垮。

总结来说 ,RabbitMQ就是这样一个通过 "队列" 和 "交换机" 模型,为分布式系统提供解耦、异步、削峰能力的消息中间件。它解决了系统间同步调用的种种问题,是现代微服务和分布式架构中非常基础且重要的组件。

mac如何安装?

在 macOS 上,通过包管理器 Homebrew 来安装 RabbitMQ 是最简单、最推荐的方式。它会自动帮你处理 Erlang 这个关键依赖

使用 Homebrew 安装(推荐)

安装 Homebrew:如果你还没安装,在终端中运行以下命令

bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

如果不能正常下载或者下载缓慢,使用国内清华源安装脚本:

bash 复制代码
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

参考:

【2026 最新】Mac 终端神器 Homebrew 完全指南:从安装、换源加速到核心命令速查(Mac 版)-CSDN博客

更新并安装:在终端中依次执行以下命令来更新 Homebrew 并安装 RabbitMQ

bash 复制代码
brew update
brew install rabbitmq

配置环境变量 (PATH) :为了方便在任何目录下使用 RabbitMQ 的命令,需要将它的可执行文件目录添加到系统路径中。根据你的 Mac 芯片类型(可能不一样),选择对应的命令添加到 ~/.zshrc 文件里

我的是m1芯片

bash 复制代码
echo 'export PATH=$PATH:/opt/homebrew/opt/rabbitmq/sbin' >> ~/.zshrc

然后执行 source ~/.zshrc 让配置立即生效

启动与管理

启动服务:推荐使用后台启动方式,这样 RabbitMQ 会开机自启

bash 复制代码
brew services start rabbitmq

如果只想在前台运行用于测试,可以执行 rabbitmq-server

停止服务:

bash 复制代码
brew services stop rabbitmq

查看状态:确认服务是否正常运行

bash 复制代码
brew services list | grep rabbitmq

或者执行 rabbitmqctl status 查看更详细的节点信息

开启管理界面 (Web UI)

启用 RabbitMQ 的 Web 管理插件,可以通过浏览器来管理队列、交换器等

bash 复制代码
rabbitmq-plugins enable rabbitmq_management

完成后,浏览器访问 http://localhost:15672,使用默认账号 guest / guest 登录即可管理。

⚠️ 生产环境请务必创建新管理员账号并禁用或修改默认 guest 用户。

使用 Docker 安装(容器化)

如果你已安装Docker,这是最快的方式,完全隔离环境。

一键启动命令

直接在终端运行以下命令(注意设置了自定义账号密码):

bash 复制代码
docker run -d \
  --name rabbitmq-dev \
  --hostname my-rabbit-node \
  -p 5672:5672 \
  -p 15672:15672 \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=123456 \
  rabbitmq:4.1.5-management-alpine

参数详解:

  • -p 5672:5672:映射程序连接端口。

  • -p 15672:15672:映射Web管理界面端口。

  • -e RABBITMQ_DEFAULT_USER/PASS:设置自定义管理员账号密码(强烈建议修改)。

  • rabbitmq:4.1.5-management-alpine:带管理界面的轻量级镜像。

验证

浏览器访问 http://localhost:15672,输入 admin / 123456 即可看到管理后台。

3. 数据持久化(重要)

上述命令若删除容器数据会丢失。如需持久化,请挂载本地目录:

bash 复制代码
# 添加 -v 参数,将数据挂载到当前目录的 rabbitmq_data 下
-v $(pwd)/rabbitmq_data:/var/lib/rabbitmq

希望这篇笔记能对你有所帮助,如果在安装中遇到问题,欢迎在评论区留言交流。

相关推荐
海棠Flower未眠5 小时前
下单请求处理流程:商品维度分布式锁与 Redis 预扣库存
redis·分布式·junit
罗四强6 小时前
第10篇:打包上架:签名、打包 HAP、发布到华为应用市场
分布式·操作系统·harmonyos·arkts·鸿蒙系统
秋饼7 小时前
Redis 全面解析:从数据结构到主从/哨兵/集群、分布式锁与面试高频考点,代码到原理一次讲透
数据库·redis·分布式·面试·后端开发
二月夜7 小时前
Redis 高频面试题全解:缓存三大问题、大 key 治理与分布式锁之争(2026 招聘 JD 真题复盘)
redis·分布式·后端·缓存
后台模板学习7 小时前
Kafka 与 RabbitMQ 在用户认证与权限管理场景
kafka·rabbitmq·linq
樱花落木兰7 小时前
Redis 消息队列的可靠性演进:从 List、Pub/Sub 到 Stream 消费者组,以及 8.x 版本改变了什么
java·开发语言·经验分享·redis·分布式·python·软件工程
真上帝的左手9 小时前
12. 消息队列-Kafka进阶
分布式·中间件·kafka
装不满的克莱因瓶1 天前
支付订单成功异步MQ权益发放设计和开发
java·架构·系统架构·rabbitmq·硬件架构
Thanks_ks1 天前
Cookie 和 Session 到底是什么关系——登录态是怎么维持的
分布式·http·jwt·cookie·session·后端开发·登录态
千里达景区票务系统1 天前
消息队列选型对比:RabbitMQ vs RocketMQ vs Kafka
kafka·消息队列·rabbitmq·rocketmq