RabbitMQ 简介
消息队列(Message Queue,简称 MQ)本质上是一个先进先出的队列,只不过存储的是消息。消息可以是文本、JSON 或内嵌对象等,通常用于分布式系统之间的通信。
它的主要作用包括接收和转发消息,具体价值体现在以下几个方面:
- 异步解耦:业务流程中某些耗时操作无需即时返回结果。借助 MQ 将其异步化,例如用户注册后发送通知短信或邮件,可作为后台任务处理,不必等待完成才告知用户成功。
- 流量削峰:面对访问量剧增的突发场景,应用仍需保持可用。若按峰值投入资源会造成浪费。使用 MQ 可将请求排队,系统根据自身处理能力逐步消费,避免崩溃。例如秒杀活动。
- 消息分发:当多个系统需对同一数据响应时,可通过 MQ 分发。如支付成功后,支付系统发消息,其他系统订阅即可,无需轮询数据库。
- 延迟通知:利用延迟消息功能,在特定时间后发送通知。例如电商下单超时未支付自动取消订单。
RabbitMQ 采用 Erlang 语言实现 AMQP(高级消息队列协议),是业界广泛使用的消息中间件。
Linux 下安装 RabbitMQ
Ubuntu 环境安装
-
安装 Erlang
sudo apt-get update sudo apt-get install erlang查看版本:
erl,退出命令:halt(). -
安装 RabbitMQ
sudo apt-get update sudo apt-get install rabbitmq-server systemctl status rabbitmq-server -
启用管理界面插件
rabbitmq-plugins enable rabbitmq_management -
配置用户与权限
- 添加用户:
rabbitmqctl add_user <账号> <密码> - 设置标签:
rabbitmqctl set_user_tags <账号> administrator
注意:角色分为 Administrator、Monitoring、Policymaker、Management 等。普通生产者和消费者通常设为
None或仅赋予 Management 权限以便登录控制台。 - 添加用户:
-
重启服务
sudo systemctl restart rabbitmq-server默认通过 IP:15672 访问管理界面。
-
卸载 停止服务后,使用
apt-get purge --auto-remove rabbitmq-server及erlang相关包清理。
CentOS 安装
-
安装 Erlang
cat /etc/redhat-release wget --content-disposition yum localinstall erlang-23.3.4.11-1.el7.x86_64.rpm


