RabbitMQ 概述
RabbitMQ 是一个开源的、跨平台的消息队列中间件,基于 AMQP(高级消息队列协议)标准实现。它由 Erlang 语言编写,以高并发和分布式特性著称,广泛应用于分布式系统中实现异步通信、解耦、流量削峰及任务分发。
简单来说,RabbitMQ 就像是一个'邮局',负责在不同程序或服务之间可靠地传递消息。发送方(生产者)和接收方(消费者)无需直接交互,只需通过 RabbitMQ 进行中转。
核心功能与优势
- 消息存储与转发:生产者将消息发送到 RabbitMQ,系统暂存并根据规则路由到对应的消费者。
- 灵活的路由规则:通过交换机(Exchange)和队列(Queue)的绑定关系,实现按主题、路由键等复杂逻辑分发。
- 可靠性保障:支持消息持久化、确认机制、重试及死信队列,确保消息不丢失。
- 高可用与集群:支持镜像队列和集群部署,保障服务连续性。
- 多语言支持:提供 Java、Python、C++、Go 等多种语言的客户端库。
核心概念
- 生产者(Producer):发送消息的应用程序,将消息发布到交换机中。
- 消费者(Consumer):接收消息的应用程序,从队列中获取并处理。
- 队列(Queue):消息的存储容器,实际存放消息的地方。
- 交换机(Exchange):接收生产者发送的消息,根据路由规则分发到不同队列。常见类型包括 Direct(直连)、Topic(主题)、Fanout(广播)和 Headers(头部)。
- 绑定(Binding):连接交换机和队列的规则,定义哪些消息应被路由到哪个队列。
工作流程通常如下:生产者将消息发送至指定交换机并附带路由键,交换机根据绑定规则将消息路由至对应队列,消费者从队列拉取消息处理。

在实际交互过程中,客户端与服务端的连接建立、信道管理及消息收发细节如下图所示:

安装与配置
服务端安装
在 Linux 环境下,可以使用以下命令快速安装 RabbitMQ 服务器。
sudo apt install rabbitmq-server
启动服务并检查状态,确保显示 active (running):
sudo systemctl start rabbitmq-server
sudo systemctl status rabbitmq-server
默认情况下,guest 用户权限较低且仅限本地登录,建议创建管理员用户:
# 添加用户
sudo rabbitmqctl add_user root 123456
rabbitmqctl set_user_tags root administrator
rabbitmqctl set_permissions -p / root





