RabbitMQ是流行的开源消息队列系统,用erlang语言开发,RabbitMQ是AMQP(高级消息队列协议)的标准实现。采用该技术,我们可以实现异步处理、流量削峰、系统解耦。
RabbitMQ 整体是一个与其他中间件相同的模型,主要是负责接收、存储和转发消息。可以把消息传递的过程想想成快递:将一个快递送到快递公司,快递公司由快递员送到收件人的人中,RabbitMQ就类似于一个快递公司,也就是RabbitMQ的交换机模型。
消息是在不同应用间传递的数据。这里的消息可以非常简单,比如只包含字符串,也可以非常复杂,包含多个嵌套的对象。消息队列(Message Queue)简单来说就是一种应用程序间的通讯方式,消息发送后立即返回,然后由消息系统保证消息的可靠性传输,消息生产者只需要把消息发到MQ中就可以了,不需要关心消息的消费,同样,消息消费者只管从MQ中拉取消息而不管是谁生产的消息,通过这样的一个“互相不知道对象存在”模式,将消息的生产者和消息的消费者解耦了。
从上面可以知道,消息队列是一种应用间的异步协作机制,那么我们什么时候需要用到MQ呢?
以常见的订单系统为例,当用户点击「下单」后的业务逻辑可能包括:扣减库存、生成相应订单数据、发短信通知等。在项目和业务发展初期上面这些逻辑可能放在一起执行,随着业务的发展订单量的增加,需要提升系统服务的性能,此时就可以将一些不需要立即生效的操作拆分出来异步执行,比如发送短信通知等。这种场景下就可以使用MQ,在下单主流程(比如扣减库存、生成订单数据等)完成之后发送一条消息到MQ让主流程快速走完,然后由另外一个线程拉取MQ的消息,执行相应的业务逻辑。这里的例子主要是用消息队列来解耦。
RabbitMQ是一个由Erlang语言开发的AMQP的开源实现。AMQP(Advanced Message Queue:高级消息队列协议)它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。RabbitMQ最初起源于消息系统,用于在分布式系统中存储转发消息,具体有如下一些特点:
想深入学习RabbitMQ,动力节点的视频教程将讲授RabbitMQ的环境搭建、消息的发送与接收、消息确认、与SpringBoot集成等,可以快速掌握RabbitMQ技术,以适应项目开发的需要。
RabbitMQ实战视频教程
https://www.bilibili.com/video/BV1Ap4y1D7tU
RabbitMQ教程配套资料下载
http://www.bjpowernode.com/?toutiao
001.RabbitMQ: 什么是消息队列
•002.RabbitMQ: 为什么使用消息队列
•003.RabbitMQ: RabbitMQ的特点
•004.RabbitMQ: 安装RabbitMQ
•005.RabbitMQ: 启动和关闭服务
•006.RabbitMQ: 插件添加
•007.RabbitMQ: 用户管理
•008.RabbitMQ: 权限分配
•009.RabbitMQ: vhost
•010.RabbitMQ: AMQP协议机制
•011.RabbitMQ: 消息路由交换机类型
•012.RabbitMQ: Direct类型交换机
•013.RabbitMQ: Fanout类型交换机
•014.RabbitMQ: Topic类型交换机
•015.RabbitMQ: 消息发送
•016.RabbitMQ: 消息发送测试
•017.RabbitMQ: 消息接收
•018.RabbitMQ: 消息接收测试
•019.RabbitMQ: 交换机-direct-消息接收
•020.RabbitMQ: 交换机-direct-消息发送
•021.RabbitMQ: 交换机-fanout-消息接收
•022.RabbitMQ: 交换机-fanout-消息发送
•023.RabbitMQ: 交换机-topic-消息接收和发送
•024.RabbitMQ: 交换机-fanout和topic使用场景对比
•025.RabbitMQ: 事务性消息发送
•026.RabbitMQ: 事务性消息接收
•027.RabbitMQ: 发送者确认模式-普通确认
•028.RabbitMQ: 发送者确认模式-批量确认
•029.RabbitMQ: 发送者确认模式-异步确认
•030.RabbitMQ: 消费者确认模式-手动确认消息
•031.RabbitMQ: 消费者确认模式-事务对接收的影响以及防重复处理
•032.RabbitMQ: SpringBoot集成RabbitMQ-direct发送消息
•033.RabbitMQ: SpringBoot集成RabbitMQ-direct接收消息
•034.RabbitMQ: SpringBoot集成RabbitMQ-异步监听接收消息
•035.RabbitMQ: SpringBoot集成RabbitMQ-fanout接收消息
•036.RabbitMQ: SpringBoot集成RabbitMQ-fanout发送消息
•037.RabbitMQ: SpringBoot集成RabbitMQ-topic发送和接收消息
•038.RabbitMQ: 集群-集群模式介绍
•039.RabbitMQ: 集群-环境搭建
•040.RabbitMQ: 集群-配置集群
•041.RabbitMQ: 集群-SpringBoot链接集群
•042.RabbitMQ: 集群-镜像集群配置