2. RabbitMQ 的详细安装步骤(两种方式,第一种:yum 安装;第二种:docker 容器安装)
@[toc]
1. 第一种方式:yum 安装 RabbitMQ 的详细步骤:
- RabbitMQ 下载的官方地址: Erlang Version Requirements | RabbitMQ
注意:因为我们的 RabbitMQ 是用
Erlang
编程语言编写的,所以需要先安装对于版本的Erlang
才能使用 RabbitMQ。就相当于是我们之前学习 Tomcat 的是一样的(Tomcat 是用 Java编写的,所以使用Tomcat 需要先安装Java才可以运行) 。Erlang Version Requirements | RabbitMQ
我这里安装的是:rabbitmq-server-3.8.8-1
对应的 Erlang 版本是erlang-21.3-1
注意:RabbitMQ 的版本一定要对应上支持的 Erlang 版本,不然是无法运行 RabbitMQ 消息队列的。
- 将 rabbitMQ 文件和 Erlang 文件上传到对应
/usr/local/software
目录下(如果没有 software 需要自己创建)
sh
[root@RainbowSea software]# mkdir software
-
安装文件(分别按照以下顺序安装)
-
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
-
yum install socat -y
-
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
sh
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
如果按照执行:yum install socat -y
提示:Cannot find a valid baseurl for repo: base/7/x86_64
错误:可以参考该方案处理:Linux: Centos7 Cannot find a valid baseurl for repo: base/7/x86_64 解决方案_centos 7 安装cannot find a valid baseurl for repo-CSDN博客
- 常用命令(按照以下顺序执行),启动 RabbitMQ 消息队列
- 添加开机启动 RabbitMQ 服务
shchkconfig rabbitmq-server on
2. 启动RabbitMQ服务
sh/sbin/service rabbitmq-server start
如果启动的时候提示
报错 Job for rabbitmq-server.service failed because the control process exited with erro
可以执行如下方法解决:
sh1. 建立配置文件 //跳转目录 cd /etc/rabbitmq/ //建立文件 vim rabbitmq-env.conf 2. 添加内容 NODENAME=rabbit@localhost # 3. 再执行 systemctl start rabbitmq-server /sbin/service rabbitmq-server start
3. 查看RabbitMQ服务状态
sh/sbin/service rabbitmq-server status
- 停止RabbitMQ服务(选择执行)
sh
/sbin/service rabbitmq-server stop
1.1 安装 RabbitMQ web 管理插件
Rabbitmq有一个web管理后台,这个管理后台是以插件的方式提供的,启动后台web管理功能。
安装 RabbitMQ web 管理插件后,就可以通过访问浏览器的方式,管理查看 RabbitMQ 消息队列了。
sh
rabbitmq-plugins enable rabbitmq_management
sh
# 查看rabbitmq 的插件列表,如下命令是在:切换到sbin目录下执行才行。
./rabbitmq-plugins list
#启用
./rabbitmq-plugins enable rabbitmq_management
#禁用
./rabbitmq-plugins disable rabbitmq_management
查看插件列表:
sh
rabbitmq-plugins list
补充:
用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
这些操作都是通过rabbitmqctl管理命令来实现完成。
查看帮助:
shrabbitmqctl add_user --help
相应的命令
(1) 查看当前用户列表
shrabbitmqctl list_users
用默认账号密码(guest)密码也是 guest 访问地址 http://你虚拟机的ifconfig 查询的地址:15672/(这里我的是: http://192.168.76.156:15672/)出现权限问题。
**RabbitMQ 的默认端口号是: 15672
**
特别说明:这里我们需要关闭:Linux 的防火墙或者是打开 15672端口,让其可以被主机访问。如果是在云服务上的 需要额外在云服务器上将 15672 端口开放出来。
shsystemctl status firewalld --检查防火墙状态 systemctl stop firewalld --关闭防火墙,Linux重启之后会失效 systemctl disable firewalld --防火墙置为不可用,Linux重启后,防火墙服务不自动启动,依然是不可用
备注:如果使用默认用户guest、密码guest登录,会提示User can only log in via localhost
说明guest用户只能从localhost本机登录,所以不要使用该用户。
我们在 RabbitMQ 当中创建一个新的用户,使用该用户进行一个登录到 RabbitMQ 消息队列当中去。
1.2 在 RabbitMQ 当中创建一个新的用户,用于登录
- 添加一个新的用户,创建账号 创建一个名为 admin 的用户,密码为 123
sh
(2) 新增一个用户
语法:rabbitmqctl add_user Username Password
示例: rabbitmqctl add_user admin 123
sh
rabbitmqctl add_user admin 123 # 创建一个名为 admin 的用户,密码为 123
- 设置用户角色(为 admin 用户设置角色(administrator) 角色)
sh
设置用户角色
rabbitmqctl set_user_tags User Tag
示例:rabbitmqctl set_user_tags admin administrator
sh
rabbitmqctl set_user_tags admin administrator
- 设置用户权限(为 admin 用户添加上权限(这里我们添加上所有的权限,最高权限)说明:此处设置用户的角色为管理员角色)
sh
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
sh
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限 当前用户和角色 rabbitmqctl list_users
- 查看所有用户的权限:
sh
查看用户权限
rabbitmqctl list_permissions
- 使用 admin 用户登录(账号: admin,密码: 123) 访问:http://192.168.76.156:15672/
补充:
重置命令
sh关闭应用的命令为 rabbitmqctl stop_app 清除的命令为 rabbitmqctl reset 重新启动命令为 rabbitmqctl start_app
2. 第二种:Docker 容器安装 RabbitMQ 的详细步骤:
如果还不太了解 Docker 容器的,大家可以移步至:✏️✏️✏️ Docker_ChinaRainbowSea的博客-CSDN博客
- docker 容器的镜像拉取 RabbitMQ ,同时配置对应端口映射,已经配置文件映射。
sh
# 拉取镜像
docker pull rabbitmq:3.13-management
# -d 参数:后台运行 Docker 容器
# --name 参数:设置容器名称
# -p 参数:映射端口号,格式是"宿主机端口号:容器内端口号"。5672供客户端程序访问,15672供后台管理界面访问
# -v 参数:卷映射目录
# -e 参数:设置容器内的环境变量,这里我们设置了登录RabbitMQ管理后台的默认用户和密码
docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-v rabbitmq-plugin:/plugins \ # 同时安装 rabbitmq-plugin 插件。
-e RABBITMQ_DEFAULT_USER=guest \
-e RABBITMQ_DEFAULT_PASS=123456 \
rabbitmq:3.13-management
-e RABBITMQ_DEFAULT_USER=guest
-e RABBITMQ_DEFAULT_PASS=123456
指明了 Docker 安装 RabbitMQ 的用户名和密码信息用户下面登录 Rabbitmq
rabbitmq-plugin 安装号了 rabbitmq 的插件配置。
- (关闭防火墙/开放 15672端口,使用云服务器的需要在云服务器上开放 15672端口,对外可以访问)浏览器:你虚拟机的ifconfig 查询的地址:15672/(这里我的是: http://192.168.76.156:15672/)
使用上面创建Docker容器时指定的默认用户名、密码登录:
sh
-e RABBITMQ_DEFAULT_USER=guest \
-e RABBITMQ_DEFAULT_PASS=123456 \
2.1 Docker 安装可能遇到的问题:
- 在使用Docker拉取RabbitMQ镜像的时候,如果遇到提示:missing signature key,那就说明Docker版本太低了,需要升级
比如我目前的Docker版本如下图所示:
解决办法:
基于CentOS7
- 卸载当前Docker
更好的办法是安装Docker前曾经给服务器拍摄了快照,此时恢复快照;
如果不曾拍摄快照,那只能执行卸载操作了
shyum erase -y docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ce
- 升级yum库
shyum update -y
- 安装Docker最新版
shyum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果这一步看到提示:没有可用软件包 docker-ce,那就添加Docker的yum源:
shyum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 设置Docker服务
shsystemctl start docker systemctl enable docker
- 验证:上述操作执行完成后,再次查看Docker版本:
3. 最后:
"在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。"