一、概述
二、RabbitMQ概念
三、Docker安装RabbitMQ
docker安装RabbitMQ的命令
docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
运行成功
[root@localhost vagrant]# docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management
Unable to find image 'rabbitmq:management' locally
management: Pulling from library/rabbitmq
7b1a6ab2e44d: Downloading [====================> ] 11.48MB/28.57MB
37f453d83d8f: Download complete
e64e769bc4fd: Downloading [==> ] 2.549MB/50.93MB
c288a913222f: Download complete
12addf9c8bf9: Downloading [=> ] 337kB/16.77MB
eaeb088e057d: Waiting
b63d48599313: Waiting
05c99d3d2a57: Waiting
43665bfbc3f9: Waiting
f14c7d7911b1: Waiting
设置自动重启
docker update rabbitmq --restart=always
浏览器访问rabbitmq的地址,账户、密码默认是 guest
http://192.168.56.10:15672/
新装MQ想导入老的MQ配置
connections
监控当前有多少个客户端跟mq有连接。注意:一个客户端,跟她只有一个连接
Channels
收发信息需要建立很多通道
Exchanges
交换机
Queen
队列,当前交换机有多少个队列
管理设置功能:用户信息、虚拟主机(使用路径来分/或/a或/a/b,不同的路径对应不同的设置)、特性、策略、限制、集群
测试交换机和队列的使用
删除交换机
四.RabbitMQ运行机制
路由键的完全匹配
fanout扇出:广播的方式,根本不关注路由键是什么,无条件将所有消息发给绑定它的队列
topic发布订阅模式,最复杂的交换机,主体交换机,可以挑选发送
发消息是发给交换机(Exchanges),监听消息是监听队列(Queues),交换机将消息交给队列,监听队列的人都会拿到消息
交换机必须跟队列绑定才能进行工作,消息要发给交换机,点进交换机
绑定队列
- 创建队列
- 绑定(交换机可以绑定交换机也可以绑定队列)
参照文档创建不同的交换机,并绑定他们不同的关系
创建交换机: Exchange: exchange.direct
- 创建队列:atguigu、atguigu.emps、atguigu.news、gulixueyuan.news
- 交换机绑定队列
给交换机发送消息
- 给atguigu.news发送消息
新版中没有这个选项
换成了这个
测试扇出型交换机-Fanout-Exchange
- 添加扇出型交换机
- 绑定队列
- 发送消息(无论路由键是什么,都会收到消息)
- 看到所有队列都收到消息了
测试主题交换机Topic
- 添加主题交换机
- 绑定队列
- 测试
*.
- 只有*.news接收到
- 测试
atguigu.#