1. 首页 > 软件下载 > 正文

消息队列下载-RabbitMQ消息队列下载地址-RabbitMQ消息队列下载方法

1. RabbitMQ简介

RabbitMQ是由Pivotal开发的开源消息代理软件,实现了AMQP(高级消息队列协议)标准。RabbitMQ采用Erlang语言编写,具有高可靠性、高可用性和可扩展性。RabbitMQ广泛应用于异步处理、应用解耦、流量削峰、消息广播等场景。更多学习教程www.fgedu.net.cn

RabbitMQ的主要特点包括:支持多种消息协议、灵活的路由机制、高可用集群、消息持久化、多种客户端支持、管理界面、插件扩展、消息确认机制。

2. RabbitMQ版本说明

RabbitMQ提供多个版本系列,用户可根据需求选择:

当前版本

RabbitMQ 4.2.1:最新版本

RabbitMQ 4.2.0:稳定版本

历史版本

RabbitMQ 4.0.x:支持AMQP 1.0

RabbitMQ 3.13.x:经典版本

依赖要求

Erlang 26.x或更高版本

支持多种操作系统

支持的平台

Linux:RHEL、CentOS、Ubuntu、Debian、SUSE

Windows:Windows Server 2012+

macOS:Homebrew安装

Docker:官方镜像

版本选择建议:RabbitMQ 4.2.1是最新版本,推荐新项目使用。RabbitMQ 4.x版本原生支持AMQP 1.0协议。对于需要稳定性的生产环境,建议使用4.2.x系列。

3. 官方下载方式

RabbitMQ是完全开源免费的消息队列,可直接从官网下载。学习交流加群风哥微信: itpux-com

官方下载地址

RabbitMQ官网:https://www.rabbitmq.com/

下载页面:https://www.rabbitmq.com/docs/download

GitHub仓库:https://github.com/rabbitmq/rabbitmq-server

使用wget下载

# 下载RabbitMQ RPM包(RHEL/CentOS)
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.2.1/rabbitmq-server-4.2.1-1.el8.noarch.rpm

# 输出示例如下:
–2026-04-04 10:15:00– https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.2.1/rabbitmq-server-4.2.1-1.el8.noarch.rpm
Resolving github.com… 140.82.121.4
Connecting to github.com|140.82.121.4|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 15678901 (15M) [application/octet-stream]
Saving to: ‘rabbitmq-server-4.2.1-1.el8.noarch.rpm’

rabbitmq-server-4.2.1-1.el8.noarch.rpm 100%[===========================================>] 14.96M 25.5MB/s in 0.6s

# 下载RabbitMQ DEB包(Ubuntu/Debian)
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.2.1/rabbitmq-server_4.2.1-1_all.deb

# 输出示例如下:
–2026-04-04 10:15:00– https://github.com/rabbitmq/rabbitmq-server/releases/download/v4.2.1/rabbitmq-server_4.2.1-1_all.deb
Resolving github.com… 140.82.121.4
Connecting to github.com|140.82.121.4|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 16789012 (16M) [application/vnd.debian.binary-package]
Saving to: ‘rabbitmq-server_4.2.1-1_all.deb’

rabbitmq-server_4.2.1-1_all.deb 100%[===========================================>] 16.01M 25.5MB/s in 0.6s

# 下载Erlang(RabbitMQ依赖)
$ wget https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5/erlang-26.2.5-1.el8.x86_64.rpm

# 输出示例如下:
–2026-04-04 10:15:00– https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5/erlang-26.2.5-1.el8.x86_64.rpm
Resolving github.com… 140.82.121.4
Connecting to github.com|140.82.121.4|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 23456789 (22M) [application/octet-stream]
Saving to: ‘erlang-26.2.5-1.el8.x86_64.rpm’

erlang-26.2.5-1.el8.x86_64.rpm 100%[===========================================>] 22.37M 25.5MB/s in 0.9s

4. Docker安装方式

Docker是部署RabbitMQ最简单的方式。from:www.itpux.com

# 拉取RabbitMQ Docker镜像(包含管理界面)
$ docker pull rabbitmq:4.2.1-management

# 输出示例如下:
4.2.1-management: Pulling from library/rabbitmq
Digest: sha256:abc123def456…
Status: Downloaded newer image for rabbitmq:4.2.1-management
docker.io/library/rabbitmq:4.2.1-management

# 启动RabbitMQ容器
$ docker run -d –name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-v /fgeudb/rabbitmq/data:/var/lib/rabbitmq \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=fgedu@123 \
rabbitmq:4.2.1-management

# 输出示例如下:
abc123def456789…

# 查看容器状态
$ docker ps

# 输出示例如下:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abc123def456 rabbitmq:4.2.1-management “docker-entrypoint.s…” 5 seconds ago Up 4 seconds 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 0.0.0.0:15672->15672/tcp, 25672/tcp rabbitmq

# 查看日志
$ docker logs rabbitmq

# 输出示例如下:
2026-04-04 10:30:00.000000+00:00 [info] <0.222.0> RabbitMQ is ready to handle messages
2026-04-04 10:30:00.100000+00:00 [info] <0.222.0> Management plugin: HTTP (non-TLS) listener started on port 15672
2026-04-04 10:30:00.200000+00:00 [info] <0.222.0> Server startup complete; 4 plugins started.

# 访问管理界面
# 浏览器打开 http://192.168.1.51:15672
# 用户名: admin 密码: fgedu@123

风哥提示:RabbitMQ管理界面默认端口是15672,AMQP协议端口是5672。建议使用management标签的镜像,包含Web管理界面。首次登录后建议修改默认密码。

5. 安装介质说明

RabbitMQ提供多种安装介质,用户可根据实际需求选择。学习交流加群风哥QQ113257174

安装包类型

RPM包:RHEL/CentOS/Fedora专用

DEB包:Ubuntu/Debian专用

通用二进制包:跨平台

Docker镜像:跨平台通用

使用RPM安装(RHEL/CentOS)

# 安装依赖
# yum install -y socat logrotate

# 输出示例如下:
Package socat-1.7.3.2-2.el7.x86_64 already installed and latest version
Package logrotate-3.8.6-21.el7.x86_64 already installed and latest version
Nothing to do

# 安装Erlang
# rpm -ivh erlang-26.2.5-1.el8.x86_64.rpm

# 输出示例如下:
Preparing… ################################# [100%]
Updating / installing…
1:erlang-26.2.5-1 ################################# [100%]

# 安装RabbitMQ
# rpm -ivh rabbitmq-server-4.2.1-1.el8.noarch.rpm

# 输出示例如下:
Preparing… ################################# [100%]
Updating / installing…
1:rabbitmq-server-4.2.1-1 ################################# [100%]

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

# 输出示例如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

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

# 输出示例如下:
● rabbitmq-server.service – RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled)
Active: active (running) since Fri 2026-04-04 10:30:00 CST; 5s ago
Main PID: 12345 (beam.smp)
Status: “Initialized”
Tasks: 85 (limit: 4915)
Memory: 100.0M
CGroup: /system.slice/rabbitmq-server.service
├─12345 /usr/lib64/erlang/erts-14.2.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none…
├─12356 erl_child_setup 32768
└─12378 inet_gethost 4

# 查看版本
# rabbitmqctl version

# 输出示例如下:
4.2.1

6. 系统配置方法

RabbitMQ安装后需要进行基本配置,以下是常用配置方法。更多学习教程公众号风哥教程itpux_com

启用管理插件

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

# 输出示例如下:
Enabling plugins on node rabbit@fgedu:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@fgedu…
Plugin configuration has changed. Disable/enable plugin changes will take effect after a broker restart.
Started 3 plugins.

# 查看已启用的插件
# rabbitmq-plugins list

# 输出示例如下:
Listing plugins with pattern “.*” …
Configured: E = explicitly enabled; e = implicitly enabled
| Status: * = running on rabbit@fgedu
|/
[ ] rabbitmq_amqp1_0 4.2.1
[ ] rabbitmq_auth_backend_cache 4.2.1
[ ] rabbitmq_auth_backend_http 4.2.1
[ ] rabbitmq_auth_backend_ldap 4.2.1
[ ] rabbitmq_auth_backend_oauth2 4.2.1
[ ] rabbitmq_auth_mechanism_ssl 4.2.1
[ ] rabbitmq_consistent_hash_exchange 4.2.1
[ ] rabbitmq_event_exchange 4.2.1
[ ] rabbitmq_federation 4.2.1
[ ] rabbitmq_federation_management 4.2.1
[ ] rabbitmq_jms_topic_exchange 4.2.1
[E*] rabbitmq_management 4.2.1
[e*] rabbitmq_management_agent 4.2.1
[ ] rabbitmq_mqtt 4.2.1
[ ] rabbitmq_peer_discovery_aws 4.2.1
[ ] rabbitmq_peer_discovery_common 4.2.1
[ ] rabbitmq_peer_discovery_consul 4.2.1
[ ] rabbitmq_peer_discovery_etcd 4.2.1
[ ] rabbitmq_peer_discovery_k8s 4.2.1
[ ] rabbitmq_prometheus 4.2.1
[ ] rabbitmq_random_exchange 4.2.1
[ ] rabbitmq_recent_history_exchange 4.2.1
[ ] rabbitmq_shovel 4.2.1
[ ] rabbitmq_shovel_management 4.2.1
[ ] rabbitmq_stomp 4.2.1
[ ] rabbitmq_stream 4.2.1
[ ] rabbitmq_stream_management 4.2.1
[ ] rabbitmq_top 4.2.1
[ ] rabbitmq_tracing 4.2.1
[ ] rabbitmq_trust_store 4.2.1
[e*] rabbitmq_web_dispatch 4.2.1
[ ] rabbitmq_web_mqtt 4.2.1
[ ] rabbitmq_web_mqtt_examples 4.2.1
[ ] rabbitmq_web_stomp 4.2.1
[ ] rabbitmq_web_stomp_examples 4.2.1

用户和权限管理

# 创建用户
# rabbitmqctl add_user admin fgedu@123

# 输出示例如下:
Adding user “admin” …
Done. Don’t forget to grant the user permissions to some virtual hosts! See ‘rabbitmqctl set_permissions –help’.

# 设置用户角色
# rabbitmqctl set_user_tags admin administrator

# 输出示例如下:
Setting tags for user “admin” to [administrator] …

# 设置用户权限
# rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”

# 输出示例如下:
Setting permissions for user “admin” in vhost “/” …

# 查看用户列表
# rabbitmqctl list_users

# 输出示例如下:
Listing users …
user tags
admin administrator
guest administrator

# 删除默认guest用户(生产环境建议)
# rabbitmqctl delete_user guest

# 输出示例如下:
Deleting user “guest” …

配置文件

# 编辑配置文件
# vi /etc/rabbitmq/rabbitmq.conf

# 主要配置参数
listeners.tcp.default = 5672
management.tcp.port = 15672

# 内存限制
total_memory_available_override_value = 4GB
vm_memory_high_watermark.relative = 0.6

# 磁盘限制
disk_free_limit.absolute = 2GB

# 消息持久化
default_user = admin
default_pass = fgedu@123

# 日志配置
log.file.level = info
log.console = true
log.console.level = info

# 重启服务
# systemctl restart rabbitmq-server

# 输出示例如下:
# 查看状态
# rabbitmqctl status

# 输出示例如下:
Status of node rabbit@fgedu …
Runtime

OS PID: 12345
OS: Linux
Uptime (seconds): 300
Is under maintenance?: false
RabbitMQ version: 4.2.1
RabbitMQ release series support status: supported
Node name: rabbit@fgedu
Erlang configuration: Erlang/OTP 26 [erts-14.2.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]
Erlang processes: 345 used, 1048576 limit
Scheduler run queue length: 1
Switched from ERTS internal memory allocator to mseg_alloc
Memory binary: 12345678
Memory code: 23456789
Memory atom: 1234567
Memory processes: 34567890
Memory processes_unused: 12345678
Memory system: 45678901
Memory total: 123456789
Memory limit: 4294967296

7. 生产环境建议

在生产环境中使用RabbitMQ时,需要考虑以下因素:

性能优化配置

# 系统参数优化
# vi /etc/sysctl.conf

net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 6
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_syn_backlog = 8192
net.core.somaxconn = 65535
fs.file-max = 100000

# 使配置生效
# sysctl -p

# 输出示例如下:
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 6

# 文件描述符限制
# vi /etc/security/limits.conf

rabbitmq soft nofile 65535
rabbitmq hard nofile 65535

# RabbitMQ高级配置
# vi /etc/rabbitmq/advanced.config

[
{rabbit, [
{tcp_listen_options, [
{backlog, 4096},
{nodelay, true},
{linger, {true, 0}},
{exit_on_close, false}
]},
{vm_memory_high_watermark, 0.6},
{disk_free_limit, {mem_relative, 1.5}},
{queue_index_embed_msgs_below, 4096}
]}
].

生产环境建议:RabbitMQ适合消息队列场景,建议配置合理的内存和磁盘限制、启用消息持久化、配置镜像队列实现高可用、监控队列积压情况、配置告警机制、定期备份消息数据。

8. 集群配置方法

RabbitMQ支持集群部署,以下是集群配置方法:

集群部署

# 在所有节点上配置hosts
# vi /etc/hosts

192.168.1.51 rabbitmq-node1
192.168.1.52 rabbitmq-node2
192.168.1.53 rabbitmq-node3

# 同步Erlang Cookie(在node1执行)
# scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq-node2:/var/lib/rabbitmq/
# scp /var/lib/rabbitmq/.erlang.cookie root@rabbitmq-node3:/var/lib/rabbitmq/

# 设置Cookie权限(在node2和node3执行)
# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
# chmod 400 /var/lib/rabbitmq/.erlang.cookie

# 加入集群(在node2执行)
# rabbitmqctl stop_app

# 输出示例如下:
Stopping rabbit application on node rabbit@rabbitmq-node2 …

# rabbitmqctl join_cluster rabbit@rabbitmq-node1

# 输出示例如下:
Clustering node rabbit@rabbitmq-node2 with rabbit@rabbitmq-node1

# rabbitmqctl start_app

# 输出示例如下:
Starting node rabbit@rabbitmq-node2 …
completed with 3 plugins.

# 加入集群(在node3执行)
# rabbitmqctl stop_app
# rabbitmqctl join_cluster rabbit@rabbitmq-node1
# rabbitmqctl start_app

# 查看集群状态
# rabbitmqctl cluster_status

# 输出示例如下:
Cluster status of node rabbit@rabbitmq-node1 …
Basics

Cluster name: rabbit@rabbitmq-node1

Disk Nodes

rabbit@rabbitmq-node1
rabbit@rabbitmq-node2
rabbit@rabbitmq-node3

Running Nodes

rabbit@rabbitmq-node1
rabbit@rabbitmq-node2
rabbit@rabbitmq-node3

Versions

rabbit@rabbitmq-node1: RabbitMQ 4.2.1 on Erlang 26.2.5
rabbit@rabbitmq-node2: RabbitMQ 4.2.1 on Erlang 26.2.5
rabbit@rabbitmq-node3: RabbitMQ 4.2.1 on Erlang 26.2.5

镜像队列配置

# 配置镜像队列策略
# rabbitmqctl set_policy ha-all “^” ‘{“ha-mode”:”all”,”ha-sync-mode”:”automatic”}’

# 输出示例如下:
Setting policy “ha-all” for pattern “^” to “{“ha-mode”:”all”,”ha-sync-mode”:”automatic”}” with priority “0” for vhost “/” …

# 查看策略
# rabbitmqctl list_policies

# 输出示例如下:
Listing policies for vhost “/” …
vhost name pattern apply-to definition priority
/ ha-all ^ all {“ha-mode”:”all”,”ha-sync-mode”:”automatic”} 0

# 查看队列状态
# rabbitmqctl list_queues name policy slave_pids

# 输出示例如下:
Timeout: 60.0 seconds …
Listing queues for vhost “/” …
name policy slave_pids
test_queue ha-all [, ]

风哥提示:RabbitMQ是消息队列的首选,支持多种消息协议和丰富的路由机制。建议在生产环境中配置集群和镜像队列实现高可用。配合Prometheus监控和Grafana可视化,可以构建完整的消息队列监控解决方案。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息