一、RabbitMQ概念和结构
1.概念
RabbitMQ 是基于 Erlang 语言开发的开源消息通信中间件,点击访问RabbitMQ官网
2.结构
Publisher 和 consumer 分别是消息的发布者和接收者,Publisher 将消息发送给 exchange(交换机),然后 exchange 会将消息路由给 queue(队列),队列会暂存消息,然后 consumer 再去 queue 中获取消息,接着处理消息。VirtualHost 是虚拟主机,每个用户都有自己独享的虚拟主机,且虚拟主机之间是相互隔离的,避免干扰。这就是 RabbitMQ 的一个整体架构。
二、部署RabbitMQ
使用 docker 来部署
1.下载镜像
方式一:从 DockerHub 拉取
docker pull rabbitmq:3-management
方式二:直接下载最上方的资料,从本地加载
上传虚拟机后,使用命令加载镜像
docker load -i mq.tar
使用docker images
查看镜像,加载成功
2.安装RabbitMQ
就是运行一个 rabbitmq 容器
命令详解
docker run \ # 运行容器
-e RABBITMQ_DEFAULT_USER=gentlebrother \ # 设置登录管理端的账号
-e RABBITMQ_DEFAULT_PASS=gentlebrother \ # 设置登录管理端的密码
--name my-rabbitmq \ # 给容器命名为 my-rabbitmq
--hostname mq1 \ #设置主机名,也可以不设置,因为我们现在是单机部署,如果要集群部署的话就必须配置
-p 15672:15672 \ # RabbitMQ管理平台的端口:15672 ,为我们 提供一个UI界面,管理起来就比较方便了
-p 5672:5672 \ # 做消息通信的端口:5672 , 发消息,收消息都需要通过这个端口来建立连接
-d \ # 后台运行
rabbitmq:3-management # 使用的镜像名称
可执行命令
docker run \
-e RABBITMQ_DEFAULT_USER=gentlebrother \
-e RABBITMQ_DEFAULT_PASS=gentlebrother \
--name my-rabbitmq \
--hostname mq1 \
-p 15672:15672 \
-p 5672:5672 \
-d \
rabbitmq:3-management
使用
docker ps
查看容器,运行成功!
3.到浏览器访问
访问地址:
你的虚拟机地址:15672
,例如我的为:192.168.3.128:15672
输入账号密码登录:
简单熟悉一下界面:
Overview(总览)
Connection(连接),将来无论是消息的发送者还是消费者都应该和 mq 建立连接
建立连接以后,一定要建立一个 channel(通道),然后发送者或者消费者才能基于通道完成消息的发送或者接受。可以认为 channel 是 mq 中无论是消息发送还是消息接收的一个具体的操作对象,将来每一个连接上的人都应该创建一个或多个通道
exchange(交换机)就是路由器,负责将消息路由给多个队列
queue(队列)就是来做消息存储的
Admin(管理)可以去管理当前用户信息