文章目录
- RabbitMQ快速入门
- 1、什么是MQ?
- 2、RabbitMQ概述
- 3、RabbitMQ的结构和概念
- 4、常见消息模型
- 5、HelloWorld
RabbitMQ快速入门
1、什么是MQ?
-
MQ (MessageQueue),中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。
-
消息:就是一个个待处理的事件。
常见的MQ中间件:
2、RabbitMQ概述
RabbitMQ是基于Erlang语言开发的开源消息通信中间件,官网地址:https://www.rabbitmq.com/
RabbitMQ安装参考文档:RabbitMQ部署指南
3、RabbitMQ的结构和概念
RabbitMQ中的几个概念:
-
channel:操作MQ的工具
-
exchange:路由消息到队列中
-
queue:缓存消息
-
virtual host:虚拟主机,是对queue、exchange等资源的逻辑分组
4、常见消息模型
MQ的官方文档中给出了5个MQ的Demo示例,对应了几种不同的用法:
-
基本消息队列(BasicQueue)
-
工作消息队列(WorkQueue)
-
发布订阅(Publish、Subscribe),又根据交换机类型不同分为三种:
-
Fanout Exchange:广播
-
Direct Exchange:路由
-
Topic Exchange:主题
-
5、HelloWorld
官方的HelloWorld是基于最基础的消息队列模型来实现的,只包括三个角色:
- publisher:消息发布者,将消息发送到队列queue
- queue:消息队列,负责接受并缓存消息
- consumer:订阅队列,处理队列中的消息
测试demo:有详细的注释,访问RabbitMQ管理端口来断点测试,感受消息队列的流程。
基本消息队列的消息发送流程:
-
建立connection
-
创建channel
-
利用channel声明队列
-
利用channel向队列发送消息
基本消息队列的消息接收流程:
-
建立connection
-
创建channel
-
利用channel声明队列
-
定义consumer的消费行为handleDelivery()
-
利用channel将消费者与队列绑定
下篇我会讲解RabbitMq在Spring中的运用:SpringAMQP