本教程是在centos8下试验的,其实linux系统的都差不多
rabbitmq官方:Messaging that just works — RabbitMQ
RabbitMQ是开源AMQP实现,服务器端用Erlang语言编写,Python、Ruby、 ***、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 g*** g***-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.***/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.***/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.***/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
# 或者
***stat -tunlp | grep rabbitmq
五、网页管理控制台
1、启动应用
rabbitmq-plugins enable rabbitmq_management
默认账号 : guest,默认密码:guest
输入 http:{ip}:15672
访问(15672 是访问网页控制台)
当不能访问的时候,查看下防火墙是否开启、是否开放端口
2、当登录的时候出现 User can only log in via localhost ,在服务端上,需要添加一个admin账号
#第一步:添加 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
就可以远程访问网页控制台了
六、使用***poser安装php-amqpblib扩展
以php语言为例子
1、使用***poser安装php-amqpblib扩展
***poser require php-amqplib/php-amqplib=^3.0
2、在***poser.json文件中添加
"php-amqplib/php-amqplib": "^3.0"
到此,安装完成!