开发者学堂课程【SpringBoot 快速掌握 - 高级应用:RabbitMQ 安装测试】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/613/detail/9301
RabbitMQ 安装测试
内容介绍:
一、安装 RabbitMQ
二、RabbitMQ 整合
三、RabbitMQ 测试
一、安装 RabbitMQ
连接上 Linux 服务器,检查有没有相关的镜像,在 Docker Hub 中搜索 RabbitMQ 安装带 management 标志的官方版本,这种带有 web 的管理界面。
由于下载较慢,我们依旧使用前面涨价所讲概述的加速方法进行安装下载,通过输入:
docker pull registr:docker-cn.com/library/rabbitmq: 3-management 进行加速下载。
下载完成后进行检查,输入docker management,发现有了 RabbitMQ 镜像。
输入:
docker run -d -p 5672:5672--name myrabbitmq 完成启动运行,其中 -d 表示后台运行,-p 表示暴露端口。
5672表示进行通讯的端口,还有一种用15672表示,时管理界面访问 web 界面的端口。
然后为其起名,例如 myRabbitmq。启动哪一个镜像就将哪一个镜像的 id 复制,此时我们就可以通过客户端进行访问了。
使用默认的账号进行登录,进入后发现管理界面有6个操作菜单,分布是 overview (橄榄信息)、Connections (连接)、Channels (信道)、Exchanges (交换器)、Queues (消息队列)、Admin (管理控制台:用来添加账号密码、虚拟机等信息)。
结合上一节所学内容,进行测试 Rabbit 的路由机制。
二、RabbitMQ 整合
1.引入 spring-boot-starter-amqp
2.application.yml配 置
3.测试 RabbitMQ
1)AmqpAdmin: 管理组件
2)RabbitTemplate: 消息发送处理组件
三、RabbitMQ 测试
1、创建交换器
在 web 界面创建一个交换器,命名为 exchange.direct,类型为 direct ,设定为durable持久化交换器。交换器绑定图示四个队列:atguigu 、atguigu.news、atguigu.emps 、gulixueyuan.news。
持久化是重启后这个交换器还在,另一种重启后交换器就不在了,默认的交换器是持久化的。将其他交换器全部创建出来,分别是 exchange.fanout (类型为 fanout)、exchange topic(类型为 topic ),均为持久化的交换器。
2、创建消息队列
在 queues 中添加四个队列,atguigu 、atguigu.news、atguigu.emps 、gulixueyuan.news,队列名均是所达到路由键的名称,均为持久化。
队列若能工作,就需要和交换器进行关联绑定。
3、与交换器进行关联绑定
为每一个交换器绑定四个队列,即 atguigu 、atguigu.news、atguigu.emps 、gulixueyuan.news,路由键分别为
atguigu 、atguigu.news、atguigu.emps 、gulixueyuan.news。
4、向交换器发送消息进行测试
exchange.direct
发送 direct.exchage.nsg.hellworld 的 message,由于现在路由键是 atguigu 且direct 交换器是完全匹配路由键的,所以只有atguigu这个队列能收到消息,即点对点方式。
exchange.fanout
fanout 交换器里发送消息,无论路由键是什么,会将消息发至所有队列,比如随便使用一个路由键,写一个消息给 fanout并 进行发布,发现每一个队列都能收到内容。
exchange topic
exchange topic 是根据路由键的匹配规则来发送消息的。比如发送一个 message,使用 atguigu.news 路由键发送消息,该路由键符合 atguigu 、atguigu.news
、atguigu.emps 、gulixueyuan.news 规则,即 atguigu 、atguigu.news
、atguigu.emps 、gulixueyuan.news 中可以收到消息;
若选用 hello.news 路由键,只符合 atguigu.news、gulixueyuan.news 规则,即只能将消息发送至 atguigu.news、gulixueyuan.news 队列。
