查看系统版本
# LSB是 Linux Standard Base的缩写, lsb_release命令 用来显示LSB和特定版本的相关信息,安装 lsb
yum install -y redhat-lsb
# 查看服务器系统版本
[root@lee ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.9.2009 (Core)
Release: 7.9.2009
Codename: Core
官方说明
从 3.8.16 开始,RabbitMQ 支持 Erlang 24
Erlang 24 依赖于 OpenSSL 1.1,它在 CentOS 7 上不可用
因此 如果服务器系统是 CentOS7 建议使用 Erlang 23.x 和 3.8.16 之前版本的 RabbitMQ
切记不要安装最新版的 Erlang,一定要看文档,哪怕是英文的,需要安装服务器系统支持的版本。
安装Erlang环境
wget --content-disposition "https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.11-1.el7.x86_64.rpm/download.rpm?distro_version_id=140"
RPM 安装
# 获取 erl rpm 包
cd /usr/local/soft/
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
# RPM 编译
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
# 安装
yum install erlang
异常 ① <font style="color:rgb(0, 0, 0);">epel-release is needed by erlang-solutions-1.0-1.noarch</font>
# 安装 epel-release
yum install epel-release
# 更新yum
yum update
源码安装
更新linux依赖
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel socat
确认 RabbitMQ 和 Erlang 版本关系
RabbitMQ为Erlang语言开发,因此Centos 上必须先具备Erlang环境(类似于JDK环境一样)
RabbitMQ必须和对应的Erlang版本对应, 对应关系如下:
(更多的版本对应关系,请参考官方 RabbitMQ Erlang Version Requirements)
Erlang 官网下载并上传至服务器
下载地址 : https://www.erlang.org/downloads (截止 2023.01.28 最新版本为 25.2.1)
<font style="color:rgb(0, 0, 0);">服务器 wget 下载</font>
# 指定下载到 /usr/local/soft/
cd /usr/local/soft/
wget https://github.com/erlang/otp/releases/download/OTP-23.3.4.18/otp_src_23.3.4.18.tar.gz
编译环境 gcc
# 编译环境 gcc
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel glibc-devel xmlto perl wget socat
# (可选)由于erlang依赖wxWidgets,需要先安装wxWidgets, 而wxWidgets依赖gtk2-devel与binutils-devel
yum install ncurses ncurses-devel gcc gcc-c++ camke make kernel-devel m4 ncurses-devel openssl-devel gtk2-devel binutils-devel
( 可选 ) 下载安装 wxWidgets
# 安装依赖
yum -y install unixODBC unixODBC-devel
# 新版本erl 24需要用到c++17 需要安装下面工具
yum install centos-release-scl -y
yum install unixODBC-devel
yum install mesa-libGLU-devel-9.0.1-1.ky10.aarch64
yum install mesa-libGLU-devel
yum install mesa *
yum install freeglut*
yum install devtoolset-7 -y
# 下载
cd /usr/local/soft/
# (如果wget很慢以致失败的话,用Windows点击下载再传到linux系统机器上)
wget https://github.com/wxWidgets/wxWidgets/releases/download/v3.0.5/wxWidgets-3.0.5.tar.bz2
# 安装 bz2 解压缩工具
yum -y install bzip2
# 解压
tar xvf wxWidgets-3.0.5.tar.bz2
# 配置
cd wxWidgets-3.0.5/
./configure --with-opengl --with-gtk --enable-unicode --prefix=/usr/local/wxWidgets
# 编译(编译时间较长,请耐心等待)
make && make install
解压文件
# 进入目录、解压
cd /usr/local/soft/
tar -zxvf otp_src_23.3.4.18.tar.gz
配置安装路径
cd /usr/local/soft/otp_src_23.3.4.18
# 创建存放erlang环境的文件夹
mkdir /usr/local/erlang
# 进入 otp_src_23.2.7.4 配置安装路径,prefix 指定安装目录
./configure --prefix=/usr/local/erlang
异常① No OpenGL headers found, wx will NOT be usable (若已安装 wxWidgets,可忽略)
执行编译
# 执行编译(过程比较久,耐心等待)
make && make install
配置环境变量
vim /etc/profile
在文件最后加入一行
export PATH=$PATH:/usr/local/erlang/bin
环境变量生效
source /etc/profile
查看erl版本
erl -version
安装成功!
安装RabbitMQ
截止 2023.01.28 官网最新版本为 3.11.7
下载地址 : https://www.rabbitmq.com/download.html
安装 RabbitMQ 前需安装Erlang环境**, 根据 rabbitMQ 官方文档 指出**
下载安装包
- <font style="color:rgb(0, 0, 0);">RPM 仓库地址 : </font>https://packagecloud.io/rabbitmq/rabbitmq-server
wget https://packagecloud.io/rabbitmq/rabbitmq-server
- <font style="color:rgb(0, 0, 0);">GitHub 源码包 : </font>https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.15/rabbitmq-server-generic-unix-3.8.15.tar.xz
- <font style="color:rgb(0, 0, 0);">注意:列表中文件较多,请下载 generic-unix unix通用版</font>
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.15/rabbitmq-server-generic-unix-3.8.15.tar.xz
解压
# 解压到 /usr/local/soft/
cd /usr/local/soft/
tar -xvf rabbitmq-server-generic-unix-3.8.15.tar.xz -C /usr/local/
# 修改文件夹名
/usr/local/
mv rabbitmq_server-3.8.15 rabbitmq-3.8.15
配置RabbitMQ环境变量
vim /etc/profile
在文件最后加入一行
export PATH=$PATH:/usr/local/rabbitmq-3.8.15/sbin
服务器开放端口
<font style="color:rgb(243, 50, 50);">RabbitMQ 服务端口默认为 5672,web端口是 </font><font style="color:rgb(243, 50, 50);">15672</font>
为了避免后续踩坑,服务器开启 **15672 和 **5672 端口
开启RabbitMQ Web界面管理插件
默认情况下,是没有安装web端的客户端插件, 请在服务器上开放 15672 端口
# 开启管理页面插件
cd /usr/local/rabbitmq-3.8.15/sbin/
./rabbitmq-plugins enable rabbitmq_management
启动、停止命令
cd /usr/local/rabbitmq-3.8.15/sbin
#启动命令,该命令ctrl+c后会关闭服务
./rabbitmq-server
#在后台启动rabbit
./rabbitmq-server -detached
#关闭服务
./rabbitmqctl stop
#关闭服务(kill)找到rabbitmq服务的pid【不推荐使用】
ps -ef | grep rabbitmq
kill -9 ****
默认 guest 帐号只能在RabbitMQ安装服务器上登录
添加远程用户
用户角色简述:
administrator:可以登录控制台、查看所有信息、并对rabbitmq进行管理
monToring:监控者;登录控制台,查看所有信息
policymaker:策略制定者;登录控制台指定策略
managment:普通管理员;登录控制
# 进入RabbitMQ 安装目录
cd /usr/local/rabbitmq-3.8.15/sbin
# 添加用户
# rabbitmqctl add_user 用户名 密码
./rabbitmqctl add_user rabbituser 123123
# 分配用户标签
# rabbitmqctl set_user_tags User Tag
# [administrator]:管理员标签
./rabbitmqctl set_user_tags rabbituser administrator
至此,搭建完成!
常见问题
① Add exchange 时提示 Access refused.
用户缺少权限,给用户授权
cd /usr/local/rabbitmq-3.8.15/sbin
# 例: 给 yourusername 的用户授予可读写所有资源
./rabbitmqctl set_permissions -p / yourusername ".*" ".*" ".*"
拓展命令
启动脚本
[Unit]
Description=RabbitMQ broker
After=syslog.target network.target
[Service]
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/erlang/bin"
Environment="HOME=/usr/local/rabbitmq_server-3.9.14/"
Environment="LIB=/usr/local/erlang/lib:/usr/lib:/usr/local/rabbitmq_server-3.9.14/var/lib"
Type=notify
LimitNOFILE=65536
LimitNPROC=65535
WorkingDirectory=/var/lib/rabbitmq
ExecStart=/usr/local/rabbitmq_server-3.9.14/sbin/rabbitmq-server
ExecStop=/usr/local/rabbitmq_server-3.9.14/sbin/rabbitmqctl stop
ExecStop=/bin/sh -c "while ps -p $MAINPID >/dev/null 2>&1; do sleep 1; done"
Restart=always
NotifyAccess=all
TimeoutStartSec=3600
[Install]
WantedBy=multi-user.target
参考链接
- RabbitMQ 官网
- 常用消息队列有哪些?
- 在laravel框架中使用mq
- PHP+Laravel框架RabbitMQ简单使用
- Linux安装Erlang和RabbitMQ详细步骤
- 【亲测有效】CentOS7 安装supervisor守护进程管理器 自动开机运行
- 升级Openssl 1.1.1版本以及更新Nginx应用新版Openssl
- Linux 安装并搭建 3.10.7 RabbmitMQ 集群之搭建RabbitMq服务器
- centos7 编译安装erlang 24.1.4
- RabbitMQ CentOS7 安装部署
- CentOS 7 安装Erlang、RabbitMQ(亲测通过)
- supervisor之启动rabbitmq报错原因
- Erlang和RabbitMQ的部署