一定要用消息队列?聊聊为什么要用它


本篇文章给大家带来了关于消息队列的相关知识,其中主要介绍了咱们之所以要使用消息队列的原因,为什么要使用消息队列,感兴趣的朋友,下面一起来看一下吧,希望对大家有帮助。

为什么要使用消息队列,六个字总结:解耦、异步、消峰

1)解耦

传统模式下系统间的耦合性太强。怎么说呢,举个例子:系统 A 通过接口调用发送数据到 B、C、D 三个系统,如果将来 E 系统接入或者 B 系统不需要接入了,那么系统 A 还需要修改代码,非常麻烦。

896da398dc98788ffa036eef0671a4d.jpg

如果系统 A 产生了一条比较关键的数据,那么它就要时时刻刻考虑 B、C、D、E 四个系统如果挂了该咋办?这条数据它们是否都收到了?显然,系统 A 跟其它系统严重耦合。

而如果我们将数据(消息)写入消息队列,需要消息的系统直接自己从消息队列中消费。这样下来,系统 A 就不需要去考虑要给谁发送数据,不需要去维护这个代码,也不需要考虑其他系统是否调用成功、失败超时等情况,反正我只负责生产,别的我不管。

157d1e8403854609be2fc04a41a249f.jpg

2)异步

先来看传统同步的情况,举个例子:系统 A 接收一个用户请求,需要进行写库操作,还需要同样的在 B、C、D 三个系统中进行写库操作。如果 A 自己本地写库只要 1ms,而 B、C、D 三个系统写库分别要 100ms、200ms、300ms。最终请求总延时是 1 + 100 + 200 + 300 = 601ms,用户体验大打折扣。

8a30419a803e9cded36efddf86c53ff.jpg

一览妙笔 一览妙笔

自媒体、编剧、营销人员写作工具

一览妙笔 50 查看详情 一览妙笔

如果使用消息队列,那么系统 A 就只需要发送 3 条消息到消息队列中就行了,假如耗时 5ms,A 系统从接受一个请求到返回响应给用户,总时长是 1 + 5 = 6ms,对于用户而言,体验好感度直接拉满。

99ba7a633102bb9b48edb1534707ea1.jpg

3)消峰

如果没有使用缓存或者消息队列,那么系统就是直接基于数据库 MySQL 的,如果有那么一个高峰期,产生了大量的请求涌入 MySQL,毫无疑问,系统将会直接崩溃。

那如果我们使用消息队列,假设 MySQL 每秒钟最多处理 1k 条数据,而高峰期瞬间涌入了 5k 条数据,不过,这 5k 条数据涌入了消息队列。这样,我们的系统就可以从消息队列中根据数据库的能力慢慢的来拉取请求,不要超过自己每秒能处理的最大请求数量就行。

也就是说消息队列每秒钟 5k 个请求进来,1k 个请求出去,假设高峰期 1 个小时,那么这段时间就可能有几十万甚至几百万的请求积压在消息队列中。不过这个短暂的高峰期积压是完全可以的,因为高峰期过了之后,每秒钟就没有那么多的请求进入消息队列了,但是数据库依然会按照每秒 1k 个请求的速度处理。所以只要高峰期一过,系统就会快速的将积压的消息给处理掉。

18c3dbe961538803c7920ed23a0c0b1.jpg

推荐学习:《Redis视频教程》

以上就是一定要用消息队列?聊聊为什么要用它的详细内容,更多请关注其它相关文章!


# 就会  # 张家港seo优化有效吗  # 推广网站视频教程  # 赤峰搜索引擎关键词排名  # 栖霞seo优化推广方式  # 焦作网络建设哪个网站好  # 贸易网站建设路  # 政府网站建设难吗  # 藁城区国内网站推广中心  # 章丘网站建设公司  # 网站概况建议优化方案模板  # 消息队列  # 产生了  # 举个例子  # 不需  # 每秒钟  # 好感度  # 还需要  # 要去  # 要使  # 要用 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: PHP 4 函数中引用参数的默认值限制与解决方案  青橙手机语音助手怎么唤醒_青橙手机语音助手设置与唤醒方法  Cassandra中复合主键、二级索引与ORDER BY排序的限制与解决方案  德邦快递查询入口登录官网 德邦快递单号查询系统入口  优化CSS动画与J*aScript定时器协同:构建稳定Toast提示  如何在Python中安全地将环境变量转换为整数并满足Mypy类型检查  Win10显卡驱动安装失败怎么办 Win10使用DDU彻底卸载驱动【解决】  感染了幽门螺杆菌一定会导致胃癌吗?蚂蚁庄园今日答案最新11.30  英雄联盟争者留名活动介绍  Lar*el怎么实现全文搜索_Lar*el Scout集成Algolia教程  CSS如何使用outline-offset与颜色组合突出元素边框  如何在mysql中比较InnoDB和MyISAM区别  《地下城堡4:骑士与破碎编年史》墓穴挑战125攻略  厨房地面防滑垫的油污怎么洗? 机洗和手洗防滑垫的注意事项  iPhone 13 mini如何清理Safari缓存_iPhone 13 mini浏览器缓存清理方法  《星露谷物语》克林特好感度事件介绍  视频转蓝光m2ts格式  铁路12306入口 铁路12306官网版入口登录网址  WPS文字如何进行简繁转换  德邦物流在线查询系统 德邦快递货物运输追踪  iCloud官方网站 iCloud网页版在线登录入口  B站怎么开|直播| B站|直播|申请需要什么条件【新手必看】  Golang如何实现HTTP请求重试机制_Golang HTTP请求错误处理策略  国际经济与贸易就业方向解析  漫蛙manwa官网浏览入口_漫蛙漫画网页版访问链接  Go语言中方法与接收器:指针和值类型的调用机制详解  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  mysql归档数据怎么导出为csv_mysql归档数据导出为csv文件的方法  汽水音乐官方网站登录入口_汽水音乐网页版进入链接  vivo浏览器怎么离线保存网页 vivo浏览器下载完整页面以便无网络时阅读  J*aScript调试技巧_性能分析与内存快照  猫眼电影app怎么查询电影院的营业时间_猫眼电影影院营业时间查询教程  阿里旺旺电脑网页版入口 阿里旺旺电脑版网页登录入口  J*a列表元素格式化输出教程  圆通快递官网入口查询单号 手机版官方查询入口  《撕歌》会员开通方法  J*aScript桌面应用_Electron多进程架构实战  Win11怎么开启HDR_Windows 11显示器画质增强设置  Win10如何查看已安装的更新补丁 Win10卸载指定更新教程【教程】  告别繁琐SEO!如何使用SyliusSitemap插件自动化生成网站地图,提升搜索引擎排名  CSS如何在页面中引入重置样式_使用Normalize.css或Reset.css统一浏览器默认样式  偃武诸葛亮阵容搭配推荐  Lar*el 中高效执行多列更新:单次查询实现  毒蘑菇VOLUMESHADER_BM官网首页登录入口 毒蘑菇VOLUMESHADER_BM官网首页登录入口说明  excel怎么计算平均值 excel平均函数*ERAGE使用教学  《领英》查看屏蔽名单方法  《一起考教师》账号注销方法  苹果iPhone14ProMax如何新建AppleID_iPhone14ProMax新建AppleID具体流程  Final Cut Pro视频加EQ教程  《糖豆》添加舞曲方法 

 2023-01-21

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.