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

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

相关推荐
Thomas.Sir1 天前
第21课:PyTorch|GPU多卡训练与分布式训练基础【让多卡并行成为你的加速引擎】
人工智能·pytorch·分布式
Cicada1281 天前
库存消息消费的正确性设计——从幂等窗口到批量流水线
分布式·系统架构
Francek Chen2 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria2 天前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
吉甫作诵2 天前
Kafka 集群安装与运维实战:消费组排查、Offset 重置与副本重分配
大数据·运维·分布式·kafka·消息队列
imDwAaY2 天前
消息队列四大核心问题:顺序性、幂等性、可靠性与一致性
学习·kafka·rabbitmq
是Dream呀3 天前
Harness 工程:让 Agent 真正把任务做完
人工智能·分布式·缓存·agent
yt004yt3 天前
绿岛数字化平台搭建:VOCs 监测与能碳数据一体化方案
大数据·分布式
天天喝旺仔3 天前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel