环境安装

本章将介绍如何在不同环境下安装 RabbitMQ,包括 Windows、Linux 和 Docker 三种方式。

推荐方式

对于初学者,强烈推荐使用 Docker 安装,一行命令即可完成,简单快捷!

🐳 Docker 安装(推荐)

前置条件

确保已安装 Docker,可以通过以下命令检查:

docker --version

一键安装

# 拉取带管理界面的 RabbitMQ 镜像
docker pull rabbitmq:3.12-management

# 启动 RabbitMQ 容器
docker run -d \
  --name rabbitmq \
  -p 5672:5672 \
  -p 15672:15672 \
  -e RABBITMQ_DEFAULT_USER=admin \
  -e RABBITMQ_DEFAULT_PASS=admin123 \
  rabbitmq:3.12-management

参数说明:

参数说明
-d后台运行
--name rabbitmq容器名称
-p 5672:5672AMQP 协议端口(程序连接用)
-p 15672:15672Web 管理界面端口
-e RABBITMQ_DEFAULT_USER默认用户名
-e RABBITMQ_DEFAULT_PASS默认密码

验证安装

# 查看容器状态
docker ps

# 查看容器日志
docker logs rabbitmq

访问管理界面:http://localhost:15672

  • 用户名:admin
  • 密码:admin123

Docker Compose 方式

创建 docker-compose.yml 文件:

version: '3.8'

services:
  rabbitmq:
    image: rabbitmq:3.12-management
    container_name: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      - RABBITMQ_DEFAULT_USER=admin
      - RABBITMQ_DEFAULT_PASS=admin123
    volumes:
      - rabbitmq_data:/var/lib/rabbitmq
    restart: unless-stopped

volumes:
  rabbitmq_data:

启动:

docker-compose up -d

🪟 Windows 安装

1. 安装 Erlang

RabbitMQ 是用 Erlang 语言编写的,需要先安装 Erlang 运行环境。

  1. 下载 Erlang:https://www.erlang.org/downloadsopen in new window
  2. 选择 Windows 64-bit 版本下载
  3. 双击安装,一路 Next 即可
  4. 配置环境变量(通常安装程序会自动配置)

验证安装:

erl -version

2. 安装 RabbitMQ

  1. 下载 RabbitMQ:https://www.rabbitmq.com/download.htmlopen in new window
  2. 选择 Windows 版本下载
  3. 双击安装,使用默认设置即可

3. 启用管理插件

以管理员身份打开命令提示符:

# 进入 RabbitMQ 安装目录的 sbin 文件夹
cd "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.12.x\sbin"

# 启用管理插件
rabbitmq-plugins enable rabbitmq_management

4. 启动服务

# 启动 RabbitMQ 服务
net start RabbitMQ

或者在服务管理器中启动 RabbitMQ 服务。

5. 创建管理员用户

默认的 guest 用户只能本地访问,需要创建新用户:

# 添加用户
rabbitmqctl add_user admin admin123

# 设置用户角色为管理员
rabbitmqctl set_user_tags admin administrator

# 设置用户权限(配置、写入、读取所有资源)
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

🐧 Linux 安装(Ubuntu/Debian)

1. 添加 RabbitMQ 仓库

# 更新软件包列表
sudo apt-get update

# 安装必要的依赖
sudo apt-get install curl gnupg apt-transport-https -y

# 添加 RabbitMQ 签名密钥
curl -1sLf "https://keys.openpgp.org/vks/v1/by-fingerprint/0A9AF2115F4687BD29803A206B73A36E6026DFCA" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/com.rabbitmq.team.gpg > /dev/null

# 添加 Erlang 仓库
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg > /dev/null

# 添加 RabbitMQ 仓库
curl -1sLf https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/gpg.9F4587F226208342.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/rabbitmq.9F4587F226208342.gpg > /dev/null

2. 安装 Erlang 和 RabbitMQ

# 添加仓库源
sudo tee /etc/apt/sources.list.d/rabbitmq.list <<EOF
deb [signed-by=/usr/share/keyrings/rabbitmq.E495BB49CC4BBE5B.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/deb/ubuntu jammy main
deb [signed-by=/usr/share/keyrings/rabbitmq.9F4587F226208342.gpg] https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-server/deb/ubuntu jammy main
EOF

# 更新并安装
sudo apt-get update
sudo apt-get install -y erlang-base erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
  erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key erlang-runtime-tools \
  erlang-snmp erlang-ssl erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl

sudo apt-get install rabbitmq-server -y

3. 启动服务

# 启动 RabbitMQ 服务
sudo systemctl start rabbitmq-server

# 设置开机自启
sudo systemctl enable rabbitmq-server

# 查看服务状态
sudo systemctl status rabbitmq-server

4. 启用管理插件

sudo rabbitmq-plugins enable rabbitmq_management

5. 创建管理员用户

# 添加用户
sudo rabbitmqctl add_user admin admin123

# 设置管理员角色
sudo rabbitmqctl set_user_tags admin administrator

# 设置权限
sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

🖥️ 管理界面介绍

安装完成后,访问 http://localhost:15672 打开 RabbitMQ 管理界面。

Overview(概览)

显示 RabbitMQ 服务器的整体状态:

  • Totals:消息总数、消息速率
  • Nodes:节点状态、内存使用、文件描述符
  • Ports and contexts:监听的端口信息

Connections(连接)

显示所有客户端连接:

  • 连接名称
  • 用户名
  • 状态
  • 通道数量

Channels(通道)

显示所有通道信息:

  • 通道名称
  • 所属连接
  • 消息确认状态

Exchanges(交换机)

管理交换机:

  • 添加/删除交换机
  • 查看交换机绑定
  • 发布测试消息

Queues(队列)

管理队列:

  • 添加/删除队列
  • 查看队列消息
  • 清空队列
  • 获取消息

Admin(管理)

用户和权限管理:

  • 添加/删除用户
  • 设置用户角色
  • 配置虚拟主机

🔧 常用命令

服务管理

# 启动服务
rabbitmq-server                    # 前台启动
rabbitmq-server -detached          # 后台启动

# 停止服务
rabbitmqctl stop

# 查看状态
rabbitmqctl status

# 查看集群状态
rabbitmqctl cluster_status

用户管理

# 列出所有用户
rabbitmqctl list_users

# 添加用户
rabbitmqctl add_user <username> <password>

# 删除用户
rabbitmqctl delete_user <username>

# 修改密码
rabbitmqctl change_password <username> <new_password>

# 设置用户角色
rabbitmqctl set_user_tags <username> <tag>
# tag: management, policymaker, monitoring, administrator

权限管理

# 设置权限
rabbitmqctl set_permissions -p <vhost> <username> <conf> <write> <read>

# 示例:授予所有权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

# 查看权限
rabbitmqctl list_permissions -p /

# 清除权限
rabbitmqctl clear_permissions -p / <username>

队列管理

# 列出所有队列
rabbitmqctl list_queues

# 列出队列详细信息
rabbitmqctl list_queues name messages consumers

# 清空队列
rabbitmqctl purge_queue <queue_name>

# 删除队列
rabbitmqctl delete_queue <queue_name>

插件管理

# 列出所有插件
rabbitmq-plugins list

# 启用插件
rabbitmq-plugins enable <plugin_name>

# 禁用插件
rabbitmq-plugins disable <plugin_name>

# 常用插件
rabbitmq-plugins enable rabbitmq_management      # 管理界面
rabbitmq-plugins enable rabbitmq_delayed_message_exchange  # 延时消息

✅ 安装验证

完成安装后,进行以下验证:

1. 检查服务状态

# Docker
docker ps | grep rabbitmq

# Linux
systemctl status rabbitmq-server

# Windows
sc query RabbitMQ

2. 检查端口

# 检查 5672 端口(AMQP)
netstat -an | grep 5672

# 检查 15672 端口(管理界面)
netstat -an | grep 15672

3. 访问管理界面

打开浏览器访问:http://localhost:15672

使用创建的管理员账号登录。

4. Java 连接测试

创建一个简单的 Java 项目测试连接:

import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class ConnectionTest {
    public static void main(String[] args) throws Exception {
        // 创建连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        factory.setPort(5672);
        factory.setUsername("admin");
        factory.setPassword("admin123");
        
        // 创建连接
        try (Connection connection = factory.newConnection()) {
            System.out.println("✅ RabbitMQ 连接成功!");
            System.out.println("连接信息: " + connection);
        }
    }
}

如果输出 "RabbitMQ 连接成功!",说明安装配置正确。

📝 本章小结

本章介绍了三种安装 RabbitMQ 的方式:

方式优点缺点推荐场景
Docker简单快捷,环境隔离需要安装 Docker开发测试
Windows图形界面安装配置相对复杂Windows 开发
Linux适合生产环境需要命令行操作生产部署

下一步

环境搭建完成后,让我们学习 RabbitMQ 核心概念