当前位置: 首页 > news >正文

MQ的介绍

一、MQ简介

MQ是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信,主要功能是业务解耦

二、常见的MQ产品

RabbitMQ、RocketMQ、Kafka、ActiveMQ
请添加图片描述

三、为什么要用MQ?(MQ的优点:异步处理、应用解耦、流量削峰)

3.1、异步处理

应用场景:当用户进行注册时,需要发送注册邮件和注册短信,传统的做法有两种:1.串行的方式 2.并行的方式

3.1.1.串行方式

将注册信息写入到数据库之后,发送注册邮件,再发送注册短信,全部完成后返回给客户端,但是邮件和短信并不是必须的,客户端需要等待邮件和短信发送完毕,这时就会增加没必要的响应时间
请添加图片描述

3.1.2.并行方式

将注册信息写入数据库后,发送邮件的同时,发送短信,完成之后,返回给客户端,并行的方式相比串行的方式减少了处理的时间
请添加图片描述

3.1.3消息队列

引入消息队列后,可以将发送邮件,发送短信这些没必要的业务进行逻辑业务处理,引入消息队列处理后,响应时间大概是串行的1/3,并行的1/2。
请添加图片描述

3.2、应用解耦

应用场景:用户购买商品下单后,订单系统需要通知库存系统,传统的做法是订单系统调用库存系统的接口
请添加图片描述
这种做法存在一个缺点:
当库存系统发生故障时,下单就会失败。订单系统和库存系统存在高耦合
引入消息队列
订单系统:用户下单后,订单系统完成持久化操作,将消息写入消息队列中,返回用户下单成功的消息
库存系统:订阅下单消息,获取下单消息,进行拆订单操作。就算库存系统出现故障后,消息队列也能 保证消息的可靠投递,不会导致消息丢失
请添加图片描述

3.3、流量削峰

**应用场景:**在购物软件举行秒杀活动时,流量会非常大,会导致应用挂掉,为了解决这个问题,一般在应用前端加入消息队列

作用

  1. 可以控制活动人数,超过一定的阀值的订单直接丢弃
  2. 可以缓解短时间的高流量压垮应用请添加图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 设计模式六大原则之:单一职责原则
  • 现代物理学(3)
  • 竞争与冒险/亚稳态/跨时钟域
  • 8 个最佳 Java IDE 和文本编辑器
  • Openleyer 获取features样式
  • Flow Simulator 案例分享:换热器的一维仿真
  • CAD二次开发IFoxCAD框架系列(21)-线型表的操作
  • Ardupilot开源飞控之IOMCU设计细节
  • LangChain:与RAG相关的模块
  • html5-css3 -- 总结 04(小白)
  • 【论文解读】Screen Content Video Quality Assessment: Subjective and Objective Study
  • 解决IDE终端中使用Git stash命令时遇到的`error: unknown switch `e``错误
  • Mac电脑虚拟机安装win11教程
  • redis列表若干记录
  • c#实现数据导出为PDF的方式
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • [译]前端离线指南(上)
  • Facebook AccountKit 接入的坑点
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • maven工程打包jar以及java jar命令的classpath使用
  • Meteor的表单提交:Form
  • Nacos系列:Nacos的Java SDK使用
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • springboot_database项目介绍
  • storm drpc实例
  • tensorflow学习笔记3——MNIST应用篇
  • vuex 笔记整理
  • 大快搜索数据爬虫技术实例安装教学篇
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 回流、重绘及其优化
  • 浏览器缓存机制分析
  • 码农张的Bug人生 - 初来乍到
  • 人脸识别最新开发经验demo
  • 什么软件可以剪辑音乐?
  • mysql面试题分组并合并列
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 仓管云——企业云erp功能有哪些?
  • ​linux启动进程的方式
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #QT(智能家居界面-界面切换)
  • (2)STM32单片机上位机
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (动态规划)5. 最长回文子串 java解决
  • (一) storm的集群安装与配置
  • .Net各种迷惑命名解释
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @JsonFormat 和 @DateTimeFormat 的区别
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @Transactional 竟也能解决分布式事务?
  • @软考考生,这份软考高分攻略你须知道
  • [10] CUDA程序性能的提升 与 流
  • [ABC275A] Find Takahashi 题解
  • [AHOI2009]中国象棋 DP,递推,组合数