Centos7部署中间件RabbitMQ
2026/4/20 2:54:17 网站建设 项目流程

一、中间件介绍

① RabbitMQ的作用

异步消息传递:生产者将消息发送到 RabbitMQ,消费者从队列中取出消息处理。这样,生产者和消费者可以独立工作,不会相互阻塞。

解耦应用程序:它帮助不同服务之间通过消息进行通信,避免它们之间的直接依赖,提升系统的灵活性和扩展性。

负载均衡:RabbitMQ 可以将消息分发到多个消费者,均衡处理负载,避免单个消费者过载。

可靠性:支持消息持久化和确认机制,确保消息不会丢失。

② 常见应用场景

异步任务处理:例如,后台处理用户上传的文件。

微服务通信:不同微服务间通过消息队列进行消息交换。

流量削峰:应对突发高并发请求时,通过队列存储消息,逐步处理。

二、安装

(一)rpm安装Erlang

①复制安装脚本执行
curl-shttps://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh|sudobash
②安装
sudoyuminstallerlang-23.3.4.11-1.el7.x86_64#版本23.3.4.11
③经过这2个步骤,Erlang就安装好了,非常快速方便!安装完成后,可以输入命令验证是否安装成功
erl-v
④ 检查是否能正常执行,能查看到版本信息,则说明安装成功,在输入halt().即可退出。
[root@VM-20-14-centos src]# erl -vErlang/OTP23[erts-11.2.2.10][source][64-bit][smp:2:2][ds:2:2:10][async-threads:1][hipe]Eshell V11.2.2.10(abort with ^G)1>

Erlang/OTP 23:表示你安装的是 Erlang 23 版本。

erts-11.2.2.10:表示 Erlang 运行时系统(ERTS)的版本。

64-bit:说明你正在使用的是 64 位版本。

smp:2:2:表示 Erlang 在使用 2 个处理器核心进行并行处理。

async-threads:1:表示你启用了异步线程。

hipe:表示启用了高效的本地代码生成。

⑤执行代码验证
1>io:format("Hello, Erlang!~n").
1>io:format("Hello, Erlang!~n"). Hello, Erlang!ok
(二)rpm安装RabbitMQ

在packagecloud上找到自己需要的RabbitMQ的版本,和安装erlang一样的步骤安装即可。

①复制安装脚本执行
curl-shttps://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh|sudobash
②安装
sudoyuminstallrabbitmq-server-3.10.0-1.el7.noarch
③启动RabbitMQ
rabbitmq-server start
④开启web管理功能
rabbitmq-pluginsenablerabbitmq_management
⑤设置开机自启
chkconfigrabbitmq-server on
⑥查看端口占用
[root@VM-20-14-centos ~]# netstat -ntlpActive Internet connections(only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp000.0.0.0:256720.0.0.0:* LISTEN8758/beam.smp tcp00127.0.0.1:63790.0.0.0:* LISTEN26277/./redis-serve tcp000.0.0.0:800.0.0.0:* LISTEN11261/docker-proxy tcp000.0.0.0:43690.0.0.0:* LISTEN8790/epmd tcp000.0.0.0:210.0.0.0:* LISTEN30082/pure-ftpd(SE tcp000.0.0.0:220.0.0.0:* LISTEN1351/sshd tcp000.0.0.0:156720.0.0.0:* LISTEN8758/beam.smp tcp00127.0.0.1:250.0.0.0:* LISTEN1302/master tcp600:::5672 :::* LISTEN8758/beam.smp tcp600::1:6379 :::* LISTEN26277/./redis-serve tcp600:::80 :::* LISTEN11267/docker-proxy tcp600:::4369 :::* LISTEN8790/epmd tcp600:::21 :::* LISTEN30082/pure-ftpd(SE tcp600:::22 :::* LISTEN1351/sshd tcp600::1:25 :::* LISTEN1302/master

看到15672,25672两个端口已经开启,同时云服务器防火墙放行15672,25672端口

⑦查看进程
ps-ef|greprabbitmq root87431015:38 ? 00:00:00 /sbin/runuser-urabbitmq -- /usr/lib/rabbitmq/bin/rabbitmq-server start rabbitmq87518743015:38 ? 00:00:00 /bin/sh /usr/lib/rabbitmq/bin/rabbitmq-server start rabbitmq87588751015:38 ? 00:00:14 /usr/lib64/erlang/erts-11.2.2.10/bin/beam.smp-Ww-MBasageffcbf-MHasageffcbf-MBlmbcs512-MHlmbcs512-MMmcs30-P1048576-t5000000-stbtdb-zdbbl128000-sbwtnone-sbwtdcpunone-sbwtdionone-Bi ---root/usr/lib64/erlang-prognameerl ---home/var/lib/rabbitmq ---pa-noshell-noinput-srabbit boot-bootstart_sasl-sysloglogger[]-syslogsyslog_error_loggerfalse-kernelprevent_overlapping_partitionsfalsestart rabbitmq87658758015:38 ? 00:00:00 erl_child_setup100001rabbitmq87901015:38 ? 00:00:00 /usr/lib64/erlang/erts-11.2.2.10/bin/epmd-daemonrabbitmq88138765015:38 ? 00:00:00 inet_gethost4rabbitmq88148813015:38 ? 00:00:00 inet_gethost4root300739258017:46 pts/1 00:00:00grep--color=auto rabbitmq
⑧浏览器访问前端管理页面

浏览器访问IP+端口号

服务器IP:15672

成功打开管理页面

三、添加rabbitmq用户
①设置用户名和密码
rabbitmqctl add_usertesttest123#用户名为test 密码为test123
②设置用户权限
rabbitmqctl set_user_tagstestadministrator#管理员权限
③查看用户列表
rabbitmqctl list_users
[root@VM-20-14-centos ~]# rabbitmqctl list_usersListingusers... user tagstest[administrator]guest[administrator]

显示已经成功添加用户 hyz

四、登录

在管理页面输入新建的用户名和密码进行登录,成功进入到管理页面!

五、软件版本说明
①版本依赖

由于RabbitMQ是由erlang语言开发的,所以需要安装erlang环境;各个版本的RabbitMQ对erlang也有版本要求,在选择RabbitMQ版本的时候,需要安装对应版本的Erlang环境。下表为最新的RabbitMQ版本对Erlang的版本支持表,更多详细版本对照表请看此链接RabbitMQ与erlang版本对照表

②软件包说明

RabbitMQ官方镜像链接:rabbitmq/rabbitmq-server - Packages · packagecloud

Erlang官方镜像链接:rabbitmq/erlang - Packages · packagecloud

EL是Red Hat E nterprise L inux(EL)的缩写。
el6 是Red Hat 6.x、CentOS 6.x 的缩写
el7 是Red Hat 7.x、CentOS 7.x 的缩写
el8 是Red Hat 8.x、CentOS 8.x 的缩写

noarch是no architecture的缩写,在计算机领域表示就是和架构无关,也就是说和部署的机器的cpu架构无关,说明这个包可以在各个不同的cpu(intel,amd各代cpu)上使用。

rprise L inux(EL)的缩写。
el6 是Red Hat 6.x、CentOS 6.x 的缩写
el7 是Red Hat 7.x、CentOS 7.x 的缩写
el8 是Red Hat 8.x、CentOS 8.x 的缩写

noarch是no architecture的缩写,在计算机领域表示就是和架构无关,也就是说和部署的机器的cpu架构无关,说明这个包可以在各个不同的cpu(intel,amd各代cpu)上使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询