本章节主要介绍以下部分:
1.RabbitMQ安装
安装方式可自行选择版本
2.生产和消费概念
3.结合springboot实现rabbitMq
4.RabbitMQ运转流程
ps:比较重要的术语例如(队列,交换器,路由键等)可自行百度,本文不多做赘述
生产和消费概念
Producer:生产者 就是投递消息的一方。
生产者创建消息,然后发布Mq中。消息一般可以包含两个部分:消息体和标签。在实际开发中,消息体一般都是一个带有业务逻辑结构的数据。生产者将消息交给Mq,Mq会根据标签把消息发送给感兴趣的消费者。
Consumer:消费者,就是接受消息的一方。
消费者连接到Mq服务器,并订阅到队列上。当消费者消费一条消息时,只是消费消息的消息体。在消息路由的过程中,消息的标签会丢弃,存到队列中的只有消息体。消费者是不知道消息来自哪里的,也不需要知道。
Broker:消息中间件的服务节点。
对于Mq来说,一个broker可以简单看成Mq的服务节点。大多数情况下也可以看成一台服务器。
以下展示了生产者将消息存入Broker以及消费者从Broker中消费数据的整个流程。
结合springboot实现rabbitMq
官网给出了六种模式,但是最常用的就是前四种
第一种:
生产者:
消费者:
第二种代码略过,就是多个消费者绑定在一个队列上,采用轮询方式消费。
第三种
生产者:
消费者
第四种
生产者
消费者
注意:
交换机和队列绑定时需要制定一个路由键,发送消息时也需要通过路由键决定这个消息发往哪些队列
如果交换机类型是fanout,则所有路由键失效,变成全局广播
RabbitMQ运转流程
分为生产者发送消息过程,消费者接受消息过程两部分。
生产者发送消息过程:
1.生产者连接Broker 建立一个连接 并开启一个信道。
2.生产者声明一个交换器,并设置相关属性。
3.生产者声明一个队列并设置相关属性。
4.生产者通过路由键将交换器和队列绑定。
5.生产者发送消息至Broker。
6.相应的交换器根据接收到的路由键匹配对应的队列。
7.如果找到则会将消息放入队列中。
8.如果没找到则会将消息根据配置丢弃或者回退给生产者。
9.关闭信道。
10.关闭连接。
消费者接受消息过程:
1.消费者连接Broker 建立一个连接 并开启一个信道。
2.消费者向Broker请求消费相应队列中的消息。
3.等待Broekr回应并投递队列的消息,消费者接受消息。
4.消费者确认接收到消息(ack确认机制)
5.Mq从队列删除已经被确认的消息。
6.关闭信道。
7.关闭连接。