您当前的位置:首页 > 电脑百科 > 程序开发 > 开源程序 > 百科

RabbitMQ入门使用教程

时间:2021-12-29 11:39:51  来源:  作者:疯狂Java说书酱

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



Tags:RabbitMQ   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
RabbitMQ是流行的开源消息队列系统,用erlang语言开发,RabbitMQ是AMQP(高级消息队列协议)的标准实现。采用该技术,我们可以实现异步处理、流量削峰、系统解耦。RabbitMQ 整体是...【详细内容】
2021-12-29  Tags: RabbitMQ  点击:(0)  评论:(0)  加入收藏
RabbitMQ 介绍RabbitMQ 是一个由erlang语言编写的、开源的、在AMQP基础上完整的、可复用的企业消息系统。支持多种语言,包括java、Python、ruby、PHP、C/C++等。1.1.AMQP模型...【详细内容】
2021-11-17  Tags: RabbitMQ  点击:(16)  评论:(0)  加入收藏
下载Erlang和RabbitMQ官网下载地址Erlang下载地址: http://www.erlang.org/downloadsRabbitMQ下载地址: http://www.rabbitmq.com/download.html版本:( Erlang23+RabbitMQ3.8.4...【详细内容】
2021-08-31  Tags: RabbitMQ  点击:(49)  评论:(0)  加入收藏
环境:Spring Boot2.3.10 + RabbitMQ 3.8.12 + Erlang 23.2.51.1 RabbitMQ介绍RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务...【详细内容】
2021-04-22  Tags: RabbitMQ  点击:(337)  评论:(0)  加入收藏
RabbitMQ环境搭建erlang和RabbitMQ版本对应关系:https://www.rabbitmq.com/which-erlang.htmlerlang环境安装yum方式安装 yum源配置[root@iyeed RabbitMQ]# curl -s https://...【详细内容】
2021-04-14  Tags: RabbitMQ  点击:(281)  评论:(0)  加入收藏
Direct 模式# 所有发送到 Direct Exchange 的消息被转发到 RouteKey 中指定的 Queue。 Direct 模式可以使用 RabbitMQ 自带的 Exchange: default Exchange,所以不需要将 Exch...【详细内容】
2021-04-13  Tags: RabbitMQ  点击:(220)  评论:(0)  加入收藏
一、关于 RabbitMQ说到 RabbitMQ,相信大家都不会陌生,微服务开发中必不可少的中间件。 在上篇关于消息队列的文章中,我们了解到 RabbitMQ 本质其实是用 Erlang 开发的 AMQP(Adva...【详细内容】
2021-03-11  Tags: RabbitMQ  点击:(229)  评论:(0)  加入收藏
说明:想要理解RabbitMQ,需要先理解MQ是什么?能做什么?然后根据基础知识去理解RabbitMQ是什么、提供了什么功能。一、MQ的简单理解1. 什么是MQ? 消息队列(Message Queue),是基础数据...【详细内容】
2021-02-07  Tags: RabbitMQ  点击:(156)  评论:(0)  加入收藏
1、 查找Docker容器中的RabbitMQ镜像docker ps -a[root@linux ~]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED...【详细内容】
2020-11-27  Tags: RabbitMQ  点击:(222)  评论:(0)  加入收藏
一、Maven依赖添加 <!-- rabbitmq相关依赖 --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId>...【详细内容】
2020-08-01  Tags: RabbitMQ  点击:(53)  评论:(0)  加入收藏
▌简易百科推荐
RabbitMQ是流行的开源消息队列系统,用erlang语言开发,RabbitMQ是AMQP(高级消息队列协议)的标准实现。采用该技术,我们可以实现异步处理、流量削峰、系统解耦。RabbitMQ 整体是...【详细内容】
2021-12-29  疯狂Java说书酱    Tags:RabbitMQ   点击:(0)  评论:(0)  加入收藏
大家好,我是等天黑, 今天介绍一个开源免费的监控工具 Uptime Kuma, 简单实用, 主要用来监控 Web 和网络, 和 Prometheus 不一样的是, 它是轻量的, 基于Node.js 和 Vue 3 开发...【详细内容】
2021-12-16  全球技术精选    Tags:监控工具   点击:(14)  评论:(0)  加入收藏
Svelte https://svelte.dev/Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶...【详细内容】
2021-11-09  风吹草低见到喜洋洋    Tags:开源软件   点击:(73)  评论:(0)  加入收藏
开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是 Lilishop 商城系统 基于SpringBoot 研发,B2B2C多用户商...【详细内容】
2021-10-21  GitHub精选    Tags:Lilishop   点击:(232)  评论:(0)  加入收藏
前言一个基于spring boot的JAVA开源商城系统,是前后端分离、为生产环境多实例完全准备、数据库为b2b2c商城系统设计、拥有完整下单流程和精美设计的java开源商城系统https://...【详细内容】
2021-09-17  Java架构师知识    Tags:开源商城   点击:(120)  评论:(0)  加入收藏
Web项目开发中视频播放是一个非常常见的需求,需要播放器能够支持pc端和移动端的使用,并且支持常见的视频格式。我们从github上精选了5款优秀的Html5 播放器插件分享给大家。(排...【详细内容】
2021-09-17  IT宇哥    Tags:播放器   点击:(103)  评论:(0)  加入收藏
本文盘点了 7 月份比较火的几个开源项目,涉及 Java、Python、教程等,这些开源项目分别是:1. 主流技术栈原理2. 数据可视化分析工具3. Spring 手撸专栏4. 接口管理平台5. 直播源...【详细内容】
2021-08-04  一个快乐的摸鱼人    Tags:开源项目   点击:(79)  评论:(0)  加入收藏
今天,要和大家推荐一个Go 编写的开源推荐系统&mdash;&mdash;Gorse。 Gorse 旨在成为一个通用的开源推荐系统,可以快速引入各种在线服务。通过将商品、用户和交互数据导入 Gors...【详细内容】
2021-08-02  程序员吖  今日头条  Tags:推荐系统   点击:(104)  评论:(0)  加入收藏
什么是kubeedge:KubeEdge是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于kubernetes构建,并为网络应用程序提供基础架构支持。云和边缘之间的部署和元...【详细内容】
2021-06-28  pythontaotao    Tags:kubeedge   点击:(225)  评论:(0)  加入收藏
什么是开源?开源(Open Source)全称是:开放源代码。在今天,不仅是软件的源代码,还有硬件的机械图、电路图、PCB图,甚至整个工程项目的源文件,也都是开源的对象。开源的目的,就是让用户...【详细内容】
2021-05-31  机电匠  今日头条  Tags:开源协议   点击:(230)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条