【2.0】RabbitMQ安装
【一】RabbitMQ是什么
【1】介绍
- RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。
- AMQP :Advanced Message Queue,高级消息队列协议。
- 它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。
- RabbitMQ 最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
【2】特点
1.可靠性(Reliability)
- RabbitMQ 使用一些机制来保证可靠性,如持久化、传输确认、发布确认。
2.灵活的路由(Flexible Routing)
- 在消息进入队列之前,通过 Exchange 来路由消息的。
- 对于典型的路由功能,RabbitMQ已经提供了一些内置的 Exchange 来实现。
- 针对更复杂的路由功能,可以将多个Exchange 绑定在一起,也通过插件机制实现自己的 Exchange 。
3.消息集群(Clustering)
- 多个 RabbitMQ 服务器可以组成一个集群,形成一个逻辑 Broker
4.高可用(Highly Available Queues)
- 队列可以在集群中的机器上进行镜像,使得在部分节点出问题的情况下队列仍然可用。
5.多种协议(Multi-protocol)
- RabbitMQ 支持多种消息队列协议,比如 STOMP、MQTT 等等。
6.多语言客户端(Many Clients)
- RabbitMQ 几乎支持所有常用语言,比如 Java、.NET、Ruby 等等。
7.管理界面(Management UI)
- RabbitMQ 提供了一个易用的用户界面,使得用户可以监控和管理消息 Broker 的许多方面。
8.跟踪机制(Tracing)
- 如果消息异常,RabbitMQ 提供了消息跟踪机制,使用者可以找出发生了什么。
9.插件机制(Plugin System)
- RabbitMQ 提供了许多插件,来从多方面进行扩展,也可以编写自己的插件。
【二】服务端原生安装
- 安装配置epel源
- 安装erlang
yum -y install erlang
- 安装RabbitMQ
yum -y install rabbitmq-server
【三】服务端Docker安装
- docker运行
docker pull rabbitmq:management
- 一个端口是web界面的端口,另一个端口是服务端口
- web 管理页面的端口是 15672
- 服务端口是5672,使用python连接时候,指定这个端口
docker run -di --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
- 查看容器
[root@VM-8-11-opencloudos ~]# docker pull rabbitmq:management
management: Pulling from library/rabbitmq
7b1a6ab2e44d: Pull complete
37f453d83d8f: Pull complete
e64e769bc4fd: Pull complete
c288a913222f: Pull complete
12addf9c8bf9: Pull complete
eaeb088e057d: Pull complete
b63d48599313: Pull complete
05c99d3d2a57: Pull complete
43665bfbc3f9: Pull complete
f14c7d7911b1: Pull complete
Digest: sha256:4c4b66ad5ec40b2c27943b9804d307bf31c17c8537cd0cd107236200a9cd2814
Status: Downloaded newer image for rabbitmq:management
docker.io/library/rabbitmq:management
[root@VM-8-11-opencloudos ~]# docker run -di --name Myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 rabbitmq:management
aa1d0a36478966b48d1f1869b8041f09fb3a3da00f71f4b980c9539f12c7dc41
[root@VM-8-11-opencloudos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aa1d0a364789 rabbitmq:management "docker-entrypoint.s…" 4 seconds ago Up 3 seconds 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp, :::15672->15672/tcp Myrabbitmq
【四】客户端安装
pip3 install pika
【五】设置用户和密码
rabbitmqctl add_user dream 123
- 设置用户为administrator角色
rabbitmqctl set_user_tags dream administrator
- 设置权限
rabbitmqctl set_permissions -p "/" dream ".*" ".*" ".*"
- 然后重启rabbiMQ服务
systemctl reatart rabbitmq-server
- 然后可以使用刚才的用户远程连接rabbitmq server了
- 如果是在Docker部署的
# 进入容器 [root@VM-8-11-opencloudos ~]# docker exec -it rabbitmq容器ID /bin/bash # 设置用户名和密码 root@aa1d0a364789:/# rabbitmqctl add_user 用户名 密码 Adding user "用户名" ... Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.root@aa1d0a364789:/# rabbitmqctl set_user_tags 用户名 administrator Setting tags for user "用户名" to [administrator] ... # 设置权限 root@aa1d0a364789:/# rabbitmqctl set_permissions -p "/" 用户名 ".*" ".*" ".*" Setting permissions for user "用户名" in vhost "/" ...
【六】界面说明
【1】登录界面
- 用户名和密码是我们在docker安装时设置的环境变量
- admin
- admin
【2】管理界面总览
-
登录RabbitMQ管理页面后,会看到以下几个主要部分:
-
Overview: 这个页面显示了RabbitMQ服务器的一般信息,例如节点的名字、状态、运行时间等。
-
Connections: 在这里,可以查看、管理和关闭当前所有的TCP连接。
-
Channels: 这个页面展示了所有当前打开的通道以及它们的详细信息。
-
Exchanges: 可以在这里查看、创建和删除交换机。
-
Queues: 这个页面展示了所有当前的队列以及它们的详细信息。
-
Admin: 在这里,可以查看系统中所有的操作用户。
【2】Connections(连接)
- 在RabbitMQ的管理页面中,
Connections
部分列出了所有当前的TCP连接。 - 每个连接都关联了它的详细信息,如用户、主机、运行状态等。
【3】Channels(通道)
Channels
页面列出了所有当前的通道。- 通道在RabbitMQ中扮演着重要的角色,所有的消息发布和接收都是通过通道进行的。
【4】Exchanges(交换机)
- 在
Exchanges
页面,你可以查看所有的交换机。 - 交换机是RabbitMQ消息路由的重要组成部分,它决定了消息如何被路由到正确的队列。
【5】Queues(队列)
- 在
Queues
页面,你可以查看所有当前的队列。 - 队列是RabbitMQ的核心,它保存了所有待处理的消息。
【6】Admin
-
RabbitMQ管理页面并没有一个专门的页面来显示所有的生产者,因为生产者在RabbitMQ中是无状态的。
-
但是,你可以通过查看 “Exchanges” 页面来了解消息被发布的情况。
-
在 “Admin” 页面,你可以查看所有当前服务的所有操作用户,并提供了添加用户和授予虚拟机的功能等。(右侧还可以切换其他的功能,下面章节用到的时候会说明)
- 在上面注册用户后在这里就可以看到我们注册的用户
【补充】Windows安装
- 官网下载erlang,版本跟rabbimq版本有对应关系
- rabbimq 官网下载安装包:https://github.com/rabbitmq/rabbitmq-server/releases
- 安装环境
- windows系统:Windows 10 专业版
- Erlang:24.1.7
- RabbitMQ:3.9.11
【1】下载
(1)资源地址
- 这里通过官网下载需要的版本:RabbitMQ官方网址
- 鉴于官网访问下载比较慢,贴一个云盘地址:百度云盘地址
(2)向下拉找到 Download + Installation
(3)选择 Install Windows
(4)下载 Erlang 和 Rabbitmq安装包
(5)下载 opt_win64_25.3.x.exe
- 这里的 Erlang 版本要和上面的一致
- 注意自己的操作系统,64为就选 win64 版本
- 补充:查看 Erlang 和 RabbitMQ 版本兼容版本详细信息
- 版本兼容详细
(6)补充-下载问题
- 省事的话直接下我下好的文件
资源一
-
官网下载速度太感人了
-
提供可用的下载地址参考
-
点击Get Relang/OTP 26
- 下载
资源二
【2】安装
(1)下载文件
(2)先安装 Erlang(otp_win64)
- 傻瓜式安装一路下一步即可
- 选择安装位置
- 有提示弹窗就点允许,没有就不用管
- 是否创建桌面快捷方式
- 直接安装即可 Install
- 配置系统环境变量
- 将你自己安装的bin路径添加到系统环境变量
(3)安装RabbitMQ
- 傻瓜式安装一路下一步即可
- 选择安装位置
- 有提示弹窗就点允许,没有就不用管
- 安装 完成
- 启动服务
-
添加系统环境变量
-
位置如上面
-
将 sbin 路径添加到系统环境变量
-
【3】启用RabbitMQ插件
- 在安装的RabbitMQ的 sbin 目录下 回车 cmd进入命令行
- 输入以下命令
rabbitmq-plugins enable rabbitmq_management
【4】重启服务
- 打开任务管理器找到 RabbitMQ 服务 右键 选择重启
【5】访问 RabbitMQ 服务
- 访问本地服务
-
用户名
- guest
-
密码
- guest
-
登陆成功
【补充】
- 如果安装途中出现任何异常问题,如报错不能安装等,访问官方文档有详细说明。
- Windows-specific Issues 官网关于windows问题解决方案
- 如果不小心安装到中文或带空格路径文件路径下,这个链接可以解决:
- 如果想要彻底卸载RabbitMQ,则访问这个链接:
【补充】Docker Compose部署RabbitMQ
- 前提:已经有了Erlang依赖
【1】确保已经安装了Docker和Docker Compose
- 确保已经安装了Docker和Docker Compose。
- 可以在终端中运行以下命令来验证安装情况:
docker -v
docker-compose -v
【2】创建 docker-compose.yml
-
创建一个新目录,并在该目录下创建一个名为
docker-compose.yml
的文件。 -
可以使用任何文本编辑器来创建文件。
-
在
docker-compose.yml
文件中添加以下代码:
version: '3'
services:
rabbitmq:
image: rabbitmq:latest
ports:
- "5672:5672"
- "15672:15672"
volumes:
- ./data:/var/lib/rabbitmq
environment:
- RABBITMQ_DEFAULT_USER=username
- RABBITMQ_DEFAULT_PASS=password
- 请注意将
username
和password
替换为希望设置的RabbitMQ用户名和密码。
【3】导航到文件目录下
- 在终端中导航到存储
docker-compose.yml
文件的目录 - 然后运行以下命令启动RabbitMQ容器:
docker-compose up -d
- 此命令将拉取最新的RabbitMQ镜像,并在后台运行容器。
【4】等待容器启动成功
- 等待一段时间,直到容器成功启动。
- 可以通过运行以下命令来检查容器状态:
docker ps
- 如果一切正常,应该看到名为
rabbitmq
的容器正在运行。
【5】访问管理后台
- 现在可以通过访问
localhost:15672
来访问RabbitMQ的管理界面。 - 使用在
docker-compose.yml
文件中设置的用户名和密码进行登录。
本文来自博客园,作者:Chimengmeng,转载请注明原文链接:https://www.cnblogs.com/dream-ze/p/17691734.html