详解最新版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 插件时才会监听)
相关推荐
weixin_4539650011 分钟前
[单master节点k8s部署]31.ceph分布式存储(二)
分布式·ceph·kubernetes
坎坎坷坷.21 分钟前
分布式理论:拜占庭将军问题
分布式
Xua30554 小时前
MQ高级:RabbitMQ小细节
rabbitmq
极客先躯6 小时前
高级java每日一道面试题-2024年10月3日-分布式篇-分布式系统中的容错策略都有哪些?
java·分布式·版本控制·共识算法·超时重试·心跳检测·容错策略
niu_sama7 小时前
仿RabbitMQ实现消息队列三种主题的调试及源码
分布式·rabbitmq
鸡c7 小时前
rabbitMq------客户端模块
分布式·rabbitmq·ruby
Dylanioucn8 小时前
【分布式微服务云原生】探索Redis:数据结构的艺术与科学
数据结构·redis·分布式·缓存·中间件
路上^_^8 小时前
00_概览_kafka
分布式·kafka
极客先躯15 小时前
Hadoop krb5.conf 配置详解
大数据·hadoop·分布式·kerberos·krb5.conf·认证系统
CopyLower16 小时前
Kafka 消费者状态及高水位(High Watermark)详解
分布式·kafka