网易首页 > 网易号 > 正文 申请入驻

RabbitMQ 简介以及使用场景

0
分享至

转载:作者:海向 地址:https://www.cnblogs.com/haixiang/p/10199754.html

一. RabbitMQ 简介

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、 安全。AMQP协议更多用在企业系统内,对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。

二. RabbitMQ 使用场景1. 解耦

解耦(为面向服务的架构(SOA)提供基本的最终一致性实现) 场景说明:用户下单后,订单系统需要通知库存系统。传统的做法是,订单系统调用库存系统的接口。

传统模式的缺点:

· 假如库存系统无法访问,则订单减库存将失败,从而导致订单失败

· 订单系统与库存系统耦合

引入消息队列

· 订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户订单下单成功

· 库存系统:订阅下单的消息,采用拉/推的方式,获取下单信息,库存系统根据下单信息,进行库存操作

· 假如:在下单时库存系统不能正常使用。也不影响正常下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦

· 为了保证库存肯定有,可以将队列大小设置成库存数量,或者采用其他方式解决。

基于消息的模型,关心的是“通知”,而非“处理”。

短信、邮件通知、缓存刷新等操作使用消息队列进行通知。

消息队列和RPC的区别与比较:

RPC: 异步调用,及时获得调用结果,具有强一致性结果,关心业务调用处理结果。

消息队列:两次异步RPC调用,将调用内容在队列中进行转储,并选择合适的时机进行投递(错峰流控)

2. 异步提升效率

场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式;2.并行方式

(1)串行方式:将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端

(2)并行方式:将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。与串行的差别是,并行的方式可以提高处理的时间

(3)引入消息队列,将不是必须的业务逻辑,异步处理。改造后的架构如下:

3. 流量削峰

流量削锋也是消息队列中的常用场景,一般在秒杀或团抢活动中使用广泛

应用场景:系统其他时间A系统每秒请求量就100个,系统可以稳定运行。系统每天晚间八点有秒杀活动,每秒并发请求量增至1万条,但是系统最大的处理能力只能每秒处理1000个请求,于是系统崩溃,服务器宕机。

之前架构:大量用户(100万用户)通过浏览器在晚上八点高峰期同时参与秒杀活动。大量的请求涌入我们的系统中,高峰期达到每秒钟5000个请求,大量的请求打到MySQL上,每秒钟预计执行3000条SQL。但是一般的MySQL每秒钟扛住2000个请求就不错了,如果达到3000个请求的话可能MySQL直接就瘫痪了,从而系统无法被使用。但是高峰期过了之后,就成了低峰期,可能也就1万用户访问系统,每秒的请求数量也就50个左右,整个系统几乎没有任何压力。

引入MQ:100万用户在高峰期的时候,每秒请求有5000个请求左右,将这5000请求写入MQ里面,系统A每秒最多只能处理2000请求,因为MySQL每秒只能处理2000个请求。系统A从MQ中慢慢拉取请求,每秒就拉取2000个请求,不要超过自己每秒能处理的请求数量即可。MQ,每秒5000个请求进来,结果只有2000个请求出去,所以在秒杀期间(将近一小时)可能会有几十万或者几百万的请求积压在MQ中。这个短暂的高峰期积压是没问题的,因为高峰期过了之后,每秒就只有50个请求进入MQ了,但是系统还是按照每秒2000个请求的速度在处理,所以说,只要高峰期一过,系统就会快速将积压的消息消费掉。我们在此计算一下,每秒在MQ积压3000条消息,1分钟会积压18万,1小时积压1000万条消息,高峰期过后,1个多小时就可以将积压的1000万消息消费掉。

三. 引入消息队列的优缺点优点

优点就是以上的那些场景应用,就是在特殊场景下有其对应的好处,解耦、异步、削峰。

缺点

· 系统的可用性降低 系统引入的外部依赖越多,系统越容易挂掉,本来只是A系统调用BCD三个系统接口就好,ABCD四个系统不报错整个系统会正常运行。引入了MQ之后,虽然ABCD系统没出错,但MQ挂了以后,整个系统也会崩溃。

· 系统的复杂性提高 引入了MQ之后,需要考虑的问题也变得多了,如何保证消息没有重复消费?如何保证消息不丢失?怎么保证消息传递的顺序?

· 一致性问题 A系统发送完消息直接返回成功,但是BCD系统之中若有系统写库失败,则会产生数据不一致的问题。

总结

所以总结来说,消息队列是一种十分复杂的架构,引入它有很多好处,但是也得针对它带来的坏处做各种额外的技术方案和架构来规避。引入MQ系统复杂度提升了一个数量级,但是在有些场景下,就是复杂十倍百倍,还是需要使用MQ。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
天津超算中心10PB数据被盗:黑客用6个月搬空"国之重器"

天津超算中心10PB数据被盗:黑客用6个月搬空"国之重器"

码上闲叙
2026-04-12 08:06:17
今天才知道,为啥鹅蛋很少有人吃?为啥卖鹅蛋的人很少?涨知识

今天才知道,为啥鹅蛋很少有人吃?为啥卖鹅蛋的人很少?涨知识

阿龙美食记
2026-04-12 15:01:18
知名国企集团,六个月没发工资了

知名国企集团,六个月没发工资了

新浪财经
2026-04-13 04:16:19
参加会见连正装都不穿了!郑丽文抵达首都第2天更加放松了!

参加会见连正装都不穿了!郑丽文抵达首都第2天更加放松了!

阿龙聊军事
2026-04-12 12:09:16
标120W的充电器实际功率仅22.5W,商家:120W是产品型号

标120W的充电器实际功率仅22.5W,商家:120W是产品型号

极目新闻
2026-04-11 00:53:31
3大腿神的最强组合!我全都要!

3大腿神的最强组合!我全都要!

贵圈真乱
2026-04-12 10:43:38
地铁上见过最绝色的女人,太美了吧

地铁上见过最绝色的女人,太美了吧

草莓解说体育
2026-04-12 21:17:17
耶鲁大学教授夸赞特朗普:他像狐狸一样聪明,很多决策都是理性的

耶鲁大学教授夸赞特朗普:他像狐狸一样聪明,很多决策都是理性的

爆角追踪
2026-04-12 13:15:47
巴西将比亚迪列入“耻辱名单”

巴西将比亚迪列入“耻辱名单”

深度报
2026-04-11 22:22:26
反映66盏路灯不亮,却被威胁“先拘留15天”:湖南男子的真实遭遇

反映66盏路灯不亮,却被威胁“先拘留15天”:湖南男子的真实遭遇

听心堂
2026-04-12 14:50:13
伊朗官员称在谈判中抵制了美方三大“无理要求”

伊朗官员称在谈判中抵制了美方三大“无理要求”

新京报
2026-04-13 07:31:08
“上海已不是上海人的上海!” 清明街头全是人,热闹超过年

“上海已不是上海人的上海!” 清明街头全是人,热闹超过年

趣味萌宠的日常
2026-04-12 12:10:39
美国之耻:30分钟滚出去。伊朗利用狼群战术,将美军逼出霍尔木兹

美国之耻:30分钟滚出去。伊朗利用狼群战术,将美军逼出霍尔木兹

梁讯
2026-04-12 14:59:13
昆凌素颜化妆画面曝光!五官变化大到离谱,周杰伦见了都得愣三秒

昆凌素颜化妆画面曝光!五官变化大到离谱,周杰伦见了都得愣三秒

观鱼听雨
2026-04-12 20:28:25
1959年,18岁陈丽华与北京电信系统某位高管结婚,生下一子二女

1959年,18岁陈丽华与北京电信系统某位高管结婚,生下一子二女

鉴史录
2026-04-12 20:00:55
芒果台踩雷!赵子琪被淘汰后直播开撕,她的过往连张朝阳都忌惮

芒果台踩雷!赵子琪被淘汰后直播开撕,她的过往连张朝阳都忌惮

小徐讲八卦
2026-04-12 06:23:01
如何优雅地谋杀一座城:陈丽华的推土机与华新民的废纸

如何优雅地谋杀一座城:陈丽华的推土机与华新民的废纸

有戏
2026-04-11 09:21:04
国际油价飙涨8%,黄金跌破4650美元,美军开始封锁伊朗港口

国际油价飙涨8%,黄金跌破4650美元,美军开始封锁伊朗港口

21世纪经济报道
2026-04-13 06:48:42
有人用锉刀把MacBook棱角磨圆了,苹果设计师看了沉默

有人用锉刀把MacBook棱角磨圆了,苹果设计师看了沉默

爬虫饲养员
2026-04-12 09:20:43
一张折线图揭露人类寿命暴增的真正秘密!是儿童死亡率从50%跌到4.3%

一张折线图揭露人类寿命暴增的真正秘密!是儿童死亡率从50%跌到4.3%

三言四拍
2026-04-12 10:37:11
2026-04-13 07:56:49
理木客
理木客
主要专注于IT技术。
43文章数 85关注度
往期回顾 全部

科技要闻

4000亿智谱,想变得更贵

头条要闻

大伯为35岁女儿周末连跑3处相亲角:女儿平时工作太忙

头条要闻

大伯为35岁女儿周末连跑3处相亲角:女儿平时工作太忙

体育要闻

创造历史!五大联赛首位女性主教练诞生

娱乐要闻

赌王女儿何超蕸病逝,常年和乳癌斗争

财经要闻

美伊谈判破裂的三大症结

汽车要闻

焕新极氪007/007GT上市 限时19.39万起

态度原创

亲子
旅游
游戏
教育
军事航空

亲子要闻

“晚上疼得睡不着”!8岁女童双眼、身上被灼伤!警惕这东西,不少人家里有

旅游要闻

顺德莫氏鸡煲爆火之后,乡村文旅还有哪些玩法?

性感妹子也救不了!《上古世纪》厂商新游,一个月不到就宣告停运

教育要闻

教育部新推教改大动作!这场重量级活动千万别错过

军事要闻

美国副总统万斯:美伊谈判未能达成协议

无障碍浏览 进入关怀版