RabbitMQ安装教程(超详细)
作者:mmseoamin日期:2024-02-24

本教程是在centos8下试验的,其实linux系统的都差不多

RabbitMQ官方:Messaging that just works — RabbitMQ

RabbitMQ是开源AMQP实现,服务器端用Erlang语言编写,Python、Ruby、 NET、Java、JMS、c、PHP、action screcrive AMQP (高级消息队列协议)和高级消息队列协议是APP应用层协议的开放标准,是为面向消息的中间件而设计的。

消息中间件主要用于组件之间的解耦,其中消息的发送方不需要知道消息使用者的存在,反之亦然。 AMQP的主要特点是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性和安全性。

一、安装Erlang

1、RabbitMQ是用Erlang语言编写的,所以在安装RabbitMQ之前需要安装Erlang

2、在构建RabbitMQ环境的过程中,RabbitMQ和Erlang的版本要对应关系,官网上可以查看RabbitMQ和Erlang的版本问题:RabbitMQ Erlang Version Requirements — RabbitMQ

3、安装前,先设置Eralng的存储库

(如需安装Erlang编译所依赖的环境请使用:yum install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel)

curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

当出现 The repository is setup! You can now install packages即成功,存储库已设置,可以安装软件包了

4、执行安装Erlang

yum install erlang

5、安装Eralng完后,输入erl -v 查看版本是否安装成功 ,返回如下:

[root@localhost ~]# erl -v
Erlang/OTP 25 [erts-13.1.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]
Eshell V13.1.1  (abort with ^G)
1> 

二、安装RabbitMQ

1、设置存储库 (在库中提供脚本安装)

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

出现 The repository is setup! You can now install packages即成功

三、RabbitMQ 和 Erlang 添加yum 存储库

1、为了使用 Yum 存储库,必须在 /etc/yum.repos.d/ 目录下添加一个 .repo 文件(例如 rabbitmq.repo)。文件的内容在发行版之间会略有不同(例如 CentOS Stream 9、CentOS Stream 8 或 OpenSUSE)。

# In /etc/yum.repos.d/rabbitmq.repo
##
## Zero dependency Erlang
##
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
##
## RabbitMQ server
##
[rabbitmq_server]
name=rabbitmq_server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_server-source]
name=rabbitmq_server-source
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

2、更新软件包数据

# yum update -y
yum -q makecache -y --disablerepo='*' --enablerepo='rabbitmq_erlang' --enablerepo='rabbitmq_server'

3、安装logrotate 依赖

yum install socat logrotate -y

4、最后安装 Eralng 和 RabbitMQ

yum install --repo rabbitmq_erlang --repo rabbitmq_server erlang rabbitmq-server -y

四、开启Rabbitmq-server 服务

1、启用RabbitMQ

systemctl enable rabbitmq-server

2、开启Rabbitmq-server 服务

systemctl start rabbitmq-server

 3、查看MQ进程

ps -ef | grep rabbitmq

4、查看mq占用的端口

lsof -i | grep rabbit
# 或者
netstat -tunlp | grep rabbitmq

五、网页管理控制台

1、启动应用

rabbitmq-plugins enable rabbitmq_management

RabbitMQ安装教程(超详细),第1张

默认账号 : guest,默认密码:guest

输入 http:{ip}:15672 访问(15672 是访问网页控制台

当不能访问的时候,查看下防火墙是否开启、是否开放端口

RabbitMQ安装教程(超详细),第2张

 2、当登录的时候出现 User can only log in via localhost ,在服务端上,需要添加一个admin账号

 RabbitMQ安装教程(超详细),第3张

#第一步:添加 admin 用户并设置密码
rabbitmqctl add_user admin 123456
#第二步:添加 admin 用户为administrator角色
rabbitmqctl set_user_tags admin  administrator
#第三步:设置 admin 用户的权限,指定允许访问的vhost以及write/read
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
#第四步:查看vhost(/)允许哪些用户访问
rabbitmqctl list_permissions -p /
#第五步:查看用户列表
rabbitmqctl list_users

 就可以远程访问网页控制台了

RabbitMQ安装教程(超详细),第4张

 六、使用composer安装php-amqpblib扩展

以php语言为例子

1、使用composer安装php-amqpblib扩展

composer require php-amqplib/php-amqplib=^3.0

2、在composer.json文件中添加

"php-amqplib/php-amqplib": "^3.0"

RabbitMQ安装教程(超详细),第5张

到此,安装完成!