安装RabbitMQ之前需要安装Erlang,这里注意安装的版本的对应关系,详见官网 版本对应,大致为
在这里我选择的是:
erlang-23.3.4-1.el7.x86_64.rpm
rabbitmq-server-3.8.16-1.el7.noarch.rpm
rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez
离线下载包:
下载地址1:rabbitmq/erlang - Packages · packagecloud
下载地址2:Releases · rabbitmq/erlang-rpm · GitHub
RabbitMQ软件包下载
下载地址:Installing on RPM-based Linux (RedHat Enterprise Linux, CentOS, Fedora, openSUSE) — RabbitMQ
下载好rpm包后,上传到服务器
rabbitmq-delayed-message-exchange下载地址,我选择的是rabbitmq_delayed_message_exchange-3.8.17.8f537ac.ez,注意这里也需要关注该插件版本和erlang和rabbitmq的版本兼容
Releases · rabbitmq/rabbitmq-delayed-message-exchange · GitHub
2.安装Erlang将包上传到服务器之后,就可以开始安装了.
1.首先安装依赖socat,安装Erlang时需要这个
yum install -y socat
2.安装Erlang
yum install erlang-23.3.4-1.el7.x86_64.rpm
3. 验证是否成功
erl
如上图表示安装成功.
3.安装RabbitMQ4. 启动MQyum install rabbitmq-server-3.8.16-1.el7.noarch.rpm
// 启动mq service rabbitmq-server start// 开机自启动 chkconfig rabbitmq-server on// 查看状态
service rabbitmq-server status
如上图表明成功.
5.开放端口如果开启了防火墙的需要开放一下 RabbitMQ的默认端口 5672、15672
开放端口
firewall-cmd --zone=public --add-port=5672/tcp --permanentfirewall-cmd --zone=public --add-port=15672/tcp --permanent
此处遇到一个问题:FirewallD is not running 按照下面提示解决,解决完之后重复上一步
通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
重启防火墙(开放端口需要重启防火墙才生效))
firewall-cmd --reload
查看已开放的端口
6.配置RabbitMQfirewall-cmd --list-ports
(1)启用网页版后台管理插件
rabbitmq-plugins enable rabbitmq_management
(2)新建一个用户名为admin管理员
(默认账号是guest,默认密码是guest,但这个默认账号只能本地连接,不能远程连接,所以要新建一个具有管理员权限的新用户名)
rabbitmqctl add_user admin abcd-1234
(3)赋予权限
rabbitmqctl set_user_tags admin administratorrabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
直接访问Ip:15672 如下图,安装完成.
7.安装延迟消费插件rabbitmq_delayed_message_exchange
(1)注意: 需要将下载的包上传到服务器,并把包放到rabbitmq 安装包路径下的plugins下,我的路径
/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.16/plugins
(2)执行命令
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
提示成功则安装完成
(3) 测试,在页面上如下图添加能成功,则表示延迟队列可用



