源码地址
1.概述
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,支持多种编程语言。
2.应用场景
解耦 、异步 、削峰
更多详情
3.基本架构
Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue
Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。
Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的
Producer:消息生产者,即生产方客户端,生产方客户端将消息发送
Consumer:消息消费者,即消费方客户端,接收MQ转发的消息。
ConnectionFactory(连接管理器):应用程序与Rabbit之间建立连接的管理器,程序代码中使用;
Channel(信道):消息推送使用的通道;
RoutingKey(路由键):用于把生成者的数据分配到交换器上;
BindingKey(绑定键):用于把交换器的消息绑定到队列上;
4.消息流程
- 生产者发送消息流程:
1、生产者和Broker建立TCP连接。(connection)
2、生产者和Broker建立通道。(channel)
3、生产者通过通道发消息送给Broker,由Exchange将消息进行转发。
4、Exchange将消息转发到指定的Queue。- 消费者接收消息流程:
1、消费者和Broker建立TCP连接。(connection)
2、消费者和Broker建立通道。(channel)
3、消费者监听指定的Queue。
4、当有消息到达Queue时,Broker默认将消息推送给消费者。
5、消费者接收到消息。
6、ack回复。
5.整合Springboot
<!-- amqp -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
相关链接
RabbitMQ系列之Windows安装
RabbitMQ系列之Linux安装
RabbitMQ系列之快速入门
RabbitMQ系列之消息确认机制ACK
RabbitMQ系列之交换机
RabbitMQ系列之消息重试机制
RabbitMQ系列之死信队列
RabbitMQ系列之延时队列
RabbitMQ系列之备用交换机
RabbitMQ系列之消息回调
RabbitMQ系列之Channel
RabbitMQ系列之事务以及Confirm确认
RabbitMQ系列之集群搭建管理
RabbitMQ系统之集群故障恢复