四、Docker安装RabbitMQ
上一篇文章《管理界面及授权操作》
4.1 虚拟化容器技术—Docker的安装
# yum 包更新到最新
yum update
# 安装需要的软件包,yum-util 提供 yum-config-manager 功能,另外两个是 devicemapper 驱动依赖的组件
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置 yum 源为阿里云
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 docker
yum install docker-ce -y
# 检查 docker 版本
docker -v
# 安装加速镜像,可以根据个人阿里云账号免费获取
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://xxxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
下载官方地址:https://www.rabbitmq.com/download.html
获取命令

# 获取rabbit镜像
docker pull rabbitmq:3-management
# 创建并运行容器
docker run -di --name=myrabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
# 配置环境参数运行
docker run -di --name myrabbitmq -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 61613:61613 -p 1883:1883 rabbitmq:management
# 查看日志信息
# docker logs -f myrabbitmq
4.2 RabbitMQ的角色分类
RabbitMQ角色分类
- none:不能访问management plugin
- management:查看自己相关节点信息
- 列出自己可以通过AMQP登入的虚拟机
- 查看自己的虚拟机节点 virtual hosts 的 queues,exchanges 和 bingdings 信息
- 查看和关闭自己的 channels 和 connections
- 查看有关自己的虚拟机节点 virtutal hosts 的统计信息。包括其他用户在这个节点 virtual hosts 中的活动信息
- policymaker:
- 包含 management 所有权限
- 查看、创建和删除自己的 virtual hosts 所属的 policies 和 parameters 信息
- monitoring:
- 包含 management 所有权限
- 罗列出所有的 virtual hosts,包括不能登录的 virtual hosts
- 查看其他用户的 connections 和 channels 信息
- 查看节点级别的数据,如 clustering 和 memory 使用情况
- 查看所有的 virtual hosts 的全局统计信息
- administrator:
- 最高权限
- 可以创建和删除 virtaul hosts
- 可以查看、创建和删除 users
- 查看和创建 permissions
- 关闭所有用户的 connections

五、AMQP 协议
什么是 AMQP
AMQP全程:Advanced Message Queuing Protocol(高级消息队列协议)。应用层协议的一个开发标准,为面向消息的中间件设计
5.1 消息队列中的生产者和消费者流转
AMQP 生产者流转过程

AMQP 消费者流转过程

5.2 RabbitMQ 的核心组成部分

核心概念:
- Server:又称为
Broker,接受客户端的连接,实现 AMQP 实体服务。安装 rabbitmq-server - Connection:连接,应用程序与 Broker 的网络连接 TCP/IP 三次握手和四次握手
- Channel:网络信道,几乎所有的操作都在 Channel 中进行,Channel 是进行消息读写的通道,客户端可以建立对各 Channel,每个Channel代表一个会话任务
- Message:消息,服务于应用程序之间传送的数据,由 Properties 和 body 组成,Properties 可对消息进行修饰,比如消息的优先级,延迟等高级特性,body就是消息体的内容
- Virtual Host:虚拟地址,用于进行逻辑隔离,最上层的消息路由,一个虚拟机里可以有多个 Exchange 和 Queue,同一个虚拟主机里面不能有相同名字的 Exchange
- Exchange:交换机,接收消息,根据路由键发送消息到绑定队列(不具备消息存储能力)
- Bindings:Exchange 和 Queue 之间的虚拟连接,binding 中可以保护多个 routing key
- Routing key:是一个路由规则,虚拟机可以用它来确定如何路由一个特定消息
- Queue:队列,也称为 Message Queue 消息队列,保存消息并将它们发送给消费者
Bindings





推荐:建议指定交换机,不要使用默认交换机
Routing key
当交换机接收到信道里的消息之后,队列可根据路由,选择性地将消息发送给消费者
RabbitMQ 的运行流程

代码过程

5.3 RabbitMQ 支持消息的模式
参考官网:https://www.rabbitmq.com/getstarted.html
1)简单模式 Simple
2)工作模式 Work
3)发布订阅模式
4)路由模式
5)主题 Topics 模式
6)参数模式



界面化发送消息

界面化接收消息

本文含有隐藏内容,请 开通VIP 后查看