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

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

相关推荐
zhougl9962 小时前
从ZooKeeper到微服务生态:分布式协调核心原理
分布式·微服务·zookeeper
FakeOccupational2 小时前
【p2p、分布式,区块链笔记 IPFS】网关+多地址+HTTP RPC API+kubo-rpc-client
分布式·区块链·p2p
bgy66662 小时前
Ceph 分布式存储完整实战指南:架构、部署与全场景运维
分布式·ceph·架构
夫唯不争,故无尤也17 小时前
分布式训练全栈地图
分布式·ddp·fsdp·ray·verl
国科安芯18 小时前
星载CAN总线通信网络中抗辐射MCU的通信可靠性设计分析
网络·人工智能·分布式·单片机·嵌入式硬件·架构
随遇而安zx21 小时前
SpringCloud---Spring Cloud 分布式任务调度(XXL-Job / ElasticJob)
分布式·spring cloud
天远Date Lab1 天前
分布式微服务实战:基于天远车辆估值构建自动化车价评估网关
人工智能·分布式·微服务·自动化
随遇而安zx1 天前
SpringCloud 分布式链路追踪 设计思想与源码深度解析
分布式·spring cloud
迪飞特科技1 天前
分布式事务下 Spring 声明式事务失效的 3 种修复方案
分布式·spring·wpf