动力节点RabbitMQ学习笔记,超详细的入门使用教程

RabbitMQ是流行的开源消息队列系统,用erlang语言开发,RabbitMQ是AMQP(高级消息队列协议)的标准实现。采用该技术,我们可以实现异步处理、流量削峰、系统解耦。

RabbitMQ 整体是一个与其他中间件相同的模型,主要是负责接收、存储和转发消息。可以把消息传递的过程想想成快递:将一个快递送到快递公司,快递公司由快递员送到收件人的人中,RabbitMQ就类似于一个快递公司,也就是RabbitMQ的交换机模型。

什么是消息队列(MQ)

消息是在不同应用间传递的数据。这里的消息可以非常简单,比如只包含字符串,也可以非常复杂,包含多个嵌套的对象。消息队列(Message Queue)简单来说就是一种应用程序间的通讯方式,消息发送后立即返回,然后由消息系统保证消息的可靠性传输,消息生产者只需要把消息发到MQ中就可以了,不需要关心消息的消费,同样,消息消费者只管从MQ中拉取消息而不管是谁生产的消息,通过这样的一个“互相不知道对象存在”模式,将消息的生产者和消息的消费者解耦了。

什么场景下考虑使用消息队列?

从上面可以知道,消息队列是一种应用间的异步协作机制,那么我们什么时候需要用到MQ呢?

以常见的订单系统为例,当用户点击「下单」后的业务逻辑可能包括:扣减库存、生成相应订单数据、发短信通知等。在项目和业务发展初期上面这些逻辑可能放在一起执行,随着业务的发展订单量的增加,需要提升系统服务的性能,此时就可以将一些不需要立即生效的操作拆分出来异步执行,比如发送短信通知等。这种场景下就可以使用MQ,在下单主流程(比如扣减库存、生成订单数据等)完成之后发送一条消息到MQ让主流程快速走完,然后由另外一个线程拉取MQ的消息,执行相应的业务逻辑。这里的例子主要是用消息队列来解耦。

RabbitMQ的特点

RabbitMQ是一个由Erlang语言开发的AMQP的开源实现。AMQP(Advanced Message Queue:高级消息队列协议)它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。RabbitMQ最初起源于消息系统,用于在分布式系统中存储转发消息,具体有如下一些特点:

  • 可靠性:RabbitMQ使用一些机制来保证可靠性,比如持久化、传输确认机制(ack)和发布确认等。
  • 灵活的路由策略:在消息进入队列之前,通过Exchange来路由消息,对于典型的路由功能,RabbitMQ已经提供了一些内置的Exchange来实现。针对复杂的路由功能,可以将多个Exchange绑在一起,也通过插件机制实现自己的Exchange。
  • 消息集群:多个RabbitMQ服务器可以组成一个集群,形成一个逻辑Broker。
  • 高可用:队列可以在集群中的集群上进行镜像,使得在部分节点出问题的情况下队列仍然可用。
  • 多种协议:RabbitMQ支持多种消息队列协议,比如STOMP、MQTT等。
  • 多语言客户端:RabbitMQ几乎支持多有常用的语言,比如:Java、.NET等
  • 管理界面:RabbitMQ提供了一个易用的用户界面,使得用户可以监控和管理消息Broker的许多方面。

想深入学习RabbitMQ,动力节点的视频教程将讲授RabbitMQ的环境搭建、消息的发送与接收、消息确认、与SpringBoot集成等,可以快速掌握RabbitMQ技术,以适应项目开发的需要。

RabbitMQ实战视频教程

https://www.bilibili.com/video/BV1Ap4y1D7tU

RabbitMQ教程配套资料下载

http://www.bjpowernode.com/?csdn

课程学习目录

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: 集群-镜像集群配置

你可能感兴趣的:(RabbitMQ消息队列,rabbitmq,java,分布式,消息队列,后端)