详解最新版RabbitMQ 基于RPM 方式的安装

如何选择安装版本

已经不支持的发布系列

版本 最后补丁版本 首次发布时间 停止更新时间
3.7 3.7.28 2017年11月28日 2020年09月30日
3.6 3.6.16 2015年12月22日 2018年05月31日
3.5 3.5.8 2015年03月11日 2016年10月31日
3.4 3.4.4 2014年10月21日 2015年10月31日
3.3 3.3.5 2014年04月02日 2015年03月31日
3.2 3.2.4 2013年10月23日 2014年10月31日
3.1 3.1.5 2013年05月01日 2014年04月30日
3.0 3.0.4 2012年11月19日 2013年11月30日

我们选择最新版:3.8.16 于2021年5月4日更新,但2019年10月1日就已经发布3.8 版本,并且3.7版本已经停止更新了。

基于RPM 方式安装RabbitMQ

目前支持的基于 RPM 的发行版列表包括

  • CentOS 8.x
  • RedHat Enterprise Linux 8.x
  • Fedora 32 到34 (使用 CentOS 8.x 软件包)

用户权限要求:RabbitMQ RPM 包需要sudo权限才能安装和管理。

CentOS 8 阿里云镜像下载:

http://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso

基于RPM安装步骤

下载安装包

erlang
https://packagecloud.io/rabbitmq/erlang/packages/el/8/erlang-23.3.4.1-1.el8.x86_64.rpm
socat
http://www.rpmfind.net/linux/centos/8.3.2011/AppStream/x86_64/os/Packages/socat-1.7.3.3-2.el8.x86_64.rpm
RabbitMQ
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.16/rabbitmq-server-3.8.16-1.el8.noarch.rpm

注意

各个包的对应关系也是有一定要求的,像笔者这一套就都是el8的,下载的时候也一定要下载一样的,每个包后面也都有标示,而且和linux版本显示的4.18.0-80.el8.x86_64也是一致的(查看linux版本:uname -r)

将这三个rpm 上传到linux 服务器中

使用CentOS 7 系统的请下载以下安装包

https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.3-1.el7.x86_64.rpm 
http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm
https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.7.27-1.el7.noarch.rpm

安装需要的依赖包

yum install build-essential kernel-devel gcc gcc-c++ m4 ncurses-devel openssl openssl-devel unixODBC unixODBC-devel

安装RabbitMQ

分别安装Erlang、Socat、RabbitMQ(一定要按照顺序!)

安装Erlang:  rpm -ivh erlang-23.3.4.1-1.el8.x86_64.rpm
安装Socat:   rpm -ivh socat-1.7.3.3-2.el8.x86_64.rpm
安装RabbitMQ:rpm -ivh rabbitmq-server-3.8.16-1.el8.noarch.rpm

报错一

 [/usr/lib/tmpfiles.d/libstoragemgmt.conf:1] Line references path below legacy directory /var/run/, updating /var/run/lsm → /run/lsm; please update the tmpfiles.d/  drop - in file accordingly.
 [/usr/lib/tmpfiles.d/libstoragemgmt.conf:2] Line references path below legacy directory /var/run/, updating /var/run/lsm/ipc → /run/lsm/ipc; please update the tmpfiles.d/ drop-in file accordingly.
 [/usr/lib/tmpfiles.d/mdadm.conf:1] Line references path below legacy directory /var/run/, updating /var/run/mdadm → /run/mdadm; please update the tmpfiles.d/ drop-in file accordingly.
 [/usr/lib/tmpfiles.d/pesign.conf:1] Line references path below legacy directory /var/run/, updating /var/run/pesign → /run/pesign; please update the tmpfiles.d/ drop-in file accordingly.
 [/usr/lib/tmpfiles.d/rabbitmq-server.conf:1] Line references path below legacy directory /var/run/, updating /var/run/rabbitmq → /run/rabbitmq; please update the tmpfiles.d/ drop-in file accordingly.

解决报错一

将提示的需要修改的文件进行更改:旧→ 新

vim /usr/lib/tmpfiles.d/libstoragemgmt.conf 
 将 /var/run/lsm 改为 /run/lsm
vim /usr/lib/tmpfiles.d/mdadm.conf
 将/var/run/mdadm 改为 /run/mdadm
vim /usr/lib/tmpfiles.d/pesign.conf
 将/var/run/pesign 改为 /run/pesign
vim /usr/lib/tmpfiles.d/rabbitmq-server.conf
 将/var/run/rabbitmq 改为 /run/rabbitmq

再执行:

rpm -ivh rabbitmq-server-3.8.16-1.el8.noarch.rpm

如果只显示:已经安装,没有报错那就安装成功了。

RabbitMQ配置文件没有,需要新增rabbitmq.conf

cd /etc/rabbitmq/

vim rabbitmq.conf

编辑内容如下: loopback_users=none

这里的意思是开放使用,rabbitmq默认创建的用户guest,密码也是guest,这个用户默认只能是本机访问,localhost或者127.0.0.1,从外部访问需要添加上面的配置。

关于更多配置信息将在另一篇文章编写。

启动服务

rabbitmq-server start

报错二

ERROR: epmd error for host RabbitMQ-101: timeout

解决报错二

vim /etc/hosts

在最后添加:127.0.0.1 RabbitMQ-101

host 填写提示错误的host,别填错了

再次启动服务

这个命令启动属于"前台启动",ctrl+c 退出服务,

使用后台启动命令:systemctl start rabbitmq-server

查看启动端口情况:lsof -i:5672

服务状态:systemctl status rabbitmq-server

可以看到服务启动成功和日志存放目录(/var/log/rabbitmq)

服务管理命令

启动服务:systemctl start   rabbitmq-server 
服务状态:systemctl status  rabbitmq-server
关闭服务:systemctl stop    rabbitmq-server 
重启服务:systemctl restart rabbitmq-server

开启rabbitmq 管理插件

/sbin/rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server

查看默认管理端口是否监听成功:netstat -anp|grep 15672

防火墙端口开放

开放访问端口15672: firewall-cmd ---permanent ---add-port=15672/tcp
重启防火墙:       firewall-cmd --reload

到此,就可以通过http://ip:15672进行登陆web页面了

输入默认的管理员账号密码:guest,guest

完成RabbitMQ 3.8.16的安装

RabbitMQ 相关端口的作用

- 4369:epmd,RabbitMQ 节点和 CLI 工具使用的对等发现服务
- 5672、5671:由 AMQP 0-9-1 和 1.0 客户端使用,分别为没有和有 TLS
- 25672:用于节点间和 CLI 工具通信(Erlang 分发服务器端口)并从动态范围分配(默认限制为单个端口,计算为 AMQP 端口 + 20000)。除非确实需要这些端口上的外部连接(例如,集群使用联合或在子网外的机器上使用 CLI 工具),否则不应公开这些端口。
- 35672-35682:由 CLI 工具(Erlang 分发客户端端口)用于与节点通信,并从动态范围(计算为服务器分发端口 + 10000 到服务器分发端口 + 10010)分配。
- 15672:HTTP API客户端、管理 UI和 rabbitmqadmin (仅当启用管理插件时才会监听)
- 61613、61614:没有和有TLS 的STOMP 客户端(仅当启用了STOMP 插件时才会监听)
- 1883、8883:MQTT 客户端没有和有TLS,如果启用了MQTT 插件才会监听
- 15674:STOMP-over-WebSockets 客户端(仅当启用了Web STOMP 插件时才会监听)
- 15675:MQTT-over-WebSockets 客户端(仅当启用了Web MQTT 插件时才会监听)
- 15692:Prometheus 指标(仅当启用Prometheus 插件时才会监听)
相关推荐
P.H. Infinity3 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
WX187021128735 小时前
在分布式光伏电站如何进行电能质量的治理?
分布式
不能再留遗憾了8 小时前
RabbitMQ 高级特性——消息分发
分布式·rabbitmq·ruby
茶馆大橘8 小时前
微服务系列六:分布式事务与seata
分布式·docker·微服务·nacos·seata·springcloud
材料苦逼不会梦到计算机白富美11 小时前
golang分布式缓存项目 Day 1
分布式·缓存·golang
想进大厂的小王11 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
Java 第一深情11 小时前
高性能分布式缓存Redis-数据管理与性能提升之道
redis·分布式·缓存
许苑向上12 小时前
【零基础小白】 window环境下安装RabbitMQ
rabbitmq
ZHOU西口13 小时前
微服务实战系列之玩转Docker(十八)
分布式·docker·云原生·架构·数据安全·etcd·rbac
zmd-zk13 小时前
kafka+zookeeper的搭建
大数据·分布式·zookeeper·中间件·kafka