我的编程空间,编程开发者的网络收藏夹
学习永远不晚

1.RabbitMQ介绍

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

1.RabbitMQ介绍

一、MQ是什么?为什么使用它

MQ(Message Queue,简称MQ)被称为消息队列。
是一种用于在应用程序之间传递消息的通信方式。它是一种异步通信模式,允许不同的应用程序、服务或组件之间通过将消息放入队列中来进行通信。这些消息可以包含数据、命令、事件等,从而实现系统之间的解耦和异步处理。

消息队列能给系统带来的好处有下面几点

  • 异步通信
  • 程序解耦
  • 流量削峰

当然有好处也有坏处

  1. 程序复杂性提高
  2. 数据一致性问题
  3. 系统可用性降低

1.RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

首先RabbitMQ基于AMQP协议开发,所以很多基于AMQP协议的功能RabbitMQ都是支持的,比如SpringCloud中的消息总线bus

其次RabbitMQ是基于Erlang编写,这是也是RabbitMQ天生的优势,Erlang被称为面向并发编程的语言,并发能力极强,在众多的MQ中,RabbitMQ的延迟特别低,在微秒级别,所以一般的业务处理RabbitMQ比Kafka和RocketMQ更有优势。

最后RabbitMQ提供自带了图形化界面,操作方便,还自带了多种集群模式,可以保证RabbitMQ的高可用,并且SpringBoot默认就整合RabbitMQ,使用简单方便。

二、为什么使用它

第1个场景:

在微服务架构下,可能一个业务会出现同时调用多个其他服务的场景,而且这些服务之间一般会用到Feign的方式进行轻量级的通讯,如果存在一个业务,用户创建订单成功后,还需要去给用户添加积分、通知商家、通知物流系统、扣减商品库存,而在执行这个操作时,如果任意一个服务出现了问题,都会导致整体的下单业务失败,并且会导致给用户反馈的时间延长。这时就造成了服务之间存在一个较高的耦合性的问题。可能有些服务不需要一些及时的性。比如积分服务、消息服务等等。
在这里插入图片描述

第2个场景:

在我们在做一些秒杀业务时,可能会在某个时间点突然出现大量的并发请求,这可能已经远远超过服务器的并发瓶颈,这时我们需要做一些削峰的操作,也就是将大量的请求缓冲到一个队列中,然后慢慢的消费掉。

第2个场景解决方案

忽然的海量请求可以存储在RabbitMQ的队列中,然后由消费者慢慢消费掉,RabbitMQ的队列本身就可以存储上千万条消息 1642518109219.png

第1个场景解决方案:

在调用其他服务时,我们把一些不具有及时性的任务放到RabbitMq中,再由消费者慢慢消费
1642518233825.png
当然除了上面这些场景,用到消息队列的地方很多,看大家对自己系统的设计,主要理解消息队列能干什么。

来源地址:https://blog.csdn.net/qq_44605317/article/details/132468263

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

1.RabbitMQ介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

1.RabbitMQ介绍

一、MQ是什么?为什么使用它 MQ(Message Queue,简称MQ)被称为消息队列。 是一种用于在应用程序之间传递消息的通信方式。它是一种异步通信模式,允许不同的应用程序、服务或组件之间通过将消息放入队列中来进行通信。这些消息可以包含
2023-08-30

1. 介绍

在本教程中,我们将学习如何在亚马逊AWS上搭建Linux服务器。AWS是一家全球领先的云计算服务提供商,提供了各种各样的云计算服务,包括虚拟机、存储、数据库、网络等等。AWS的EC2服务是一种弹性计算云服务,可以轻松地创建和管理虚拟机实例。首先,我们需要登录AWS控制台并创建一个EC2实例。在控制台中,选择EC2服务,然后单击“启动实例”按钮。在启动实例向导中,我们需要选择以下内容:AmazonMachineImage...
2023-10-27
2023-09-16

django-1-框架介绍

<<>>用django框架做web开发必须要用到python虚拟环境,而且一个虚拟环境只能创建一个django项目,如果创建多个django项目的画将会出现一些莫名奇妙的异常(1)创建虚拟环境*删除虚拟环境用rmvi
2023-01-30

Python介绍RabbitMQ使用篇二

1. RabbitMQ WorkQueue基本工作模式介绍上一篇我们使用C#语言讲解了单个消费者从消息队列中处理消息的模型,这一篇我们使用Python语言来讲解多个消费者同时工作从一个Queue处理消息的模型。工作队列(又称:任务队列——T
2023-01-31

1.AutoMapper简单介绍

官网:http://automapper.org/源码:https://github.com/AutoMapper/AutoMapperNUGET安装: PM> Install-Package AutoMapperAutoMapper是基于对象到对象约定的映射
1.AutoMapper简单介绍
2020-08-26

Python【1】:python介绍,历

Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自由软件,
2023-01-31

python模块介绍- socket(1

底层的socket库可以直接访问本地Csocket库并且可与任何网络服务通信。select同时监控多个sockets,支持网络服务和多个客户端通信。SocketServer框架抽象了很多创建网络服务器的重复工作。该类来可以使用fork或者线
2023-01-31

python 第一章 介绍-1.pyth

一.Python特点         开源免费         脚本语言,解析执行         跨平台        高级语言,面向对象,可扩展,可移植性用于在不同的平台(因为Python是用C写的,又由于C的可移植性)内存管理器在Py
2023-01-31

Python基础语法介绍(1)

环境配置开发平台:Mac OS Version 10.13.2开发工具安装Python3.6.5 官网安装网址:https://www.python.org/downloads/Pycharm 官网安装网址:http://www.jetbr
2023-01-31

Python 入门基础1 --语言介绍

本节目录:一、编程语言介绍二、python解释器介绍三、安装python解释器四.运行python程序的两种方式五、变量六、后期补充内容一、编程语言介绍  1.机器语言:    直接用二进制编程,直接控制硬件,需要掌握硬件的操作细节  2.
2023-01-30

1-----python编程语言介绍和安

官网:https://www.python.org/1,编程语言的种类:(1) 汇编语言(2) 机器语言(3) 脚本语言(4) 高级语言2,机器语言--->汇编语言--->C语言--->Java ,C#,PHP,Python3,python
2023-01-31

python学习笔记(开课介绍1)

讲师简介:Alex Li(金角大王)crazyeye堡垒机、madking资产管理、TriAquae主机管理开源软件作者。老男孩教育python教学总监,51cto 2016十大最受学员喜欢讲师之一就职经历:略其中中金公司、诺基亚公司的介绍
2023-01-31

1小时快速上手RabbitMQ(简介及安装过程)

RabbitMQ简称MQ全称是MessageQueue(消息队列),是在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信,本文给大家讲解了RabbitMQ简介与安装,结合实例代码给大家介绍的非常详细,需要的朋友跟随小编一起看看吧
2023-01-04

编程热搜

目录