首页 > 其他分享 >MQ 使用场景

MQ 使用场景

时间:2023-09-13 18:00:33浏览次数:45  
标签:场景 落库 系统 并发 MQ 使用 推送 数据

解耦

系统间接口调用进行解耦。

例如:
A系统需要给B、C、D三个系统进行数据推送,那么需要在代码中维护推送接口,并且要考虑到所推送系统宕机的情况,此时对于数据该如何处理,同时如果需要新增推送的系统,那么A系统中需要新增推送接口,或者某一个系统不需要接收数据,A系统还需要进行代码维护。

当加入MQ消息中间件时,A系统只需要将推送的数据发到MQ消息队列中即可,BCD三个系统可以自己从MQ中获取消息数据,并且可以自己控制是否需要去MQ消费数据,宕机也可以重新消费数据。

异步

减少接口响应时间

例如:
A系统需要在接到请求后给A、B、C、D系统系统进行数据落库,那么A系统接口的响应时间就是A+B+C+D的响应时间总和,对于用户来说,此时的响应时间已经是可以感知到的了,用户体验差。

当加入MQ时,A系统可以处理自己系统的数据落库,同时将落库的操作发到MQ,那么BCD三个系统就可以同时消费消息并进行数据落库,此时的响应时间就变成了A+发送到MQ的时间,大大减少了响应时间。

削峰

流量削峰,减少数据库的压力

例如:
A系统在上午,下午,晚上这三个时间段的并发并不高,几十上百的样子,但是到了正午,并发会突然急剧增加,并发大概会到5k,若此时大量数据进来系统并对数据库进行操作,数据库是无法承受这么大的并发量的,数据库最大的并发量也就2k,此时系统的风险时非常大的。

当加入MQ时,用户请求会先进MQ,MQ是可以承受5k并发的,后端会从MQ中每秒拉取2k个请求,那么此时就算是正午,数据库的压力也不至于直接宕机,当然MQ会在短时间内积压很多请求,但是一旦过了正午,积压的请求也会很快被拉取完。
造成的影响
1、系统可用性降低,若MQ挂掉,那么与它相关的所有系统都会瘫痪,此时则需要考虑MQ的高可用性。

2、系统复杂度提升,关于如何判断消息是否被重复消费过,消息的顺序性,消息丢失如何处理。

3、数据一致性问题,A系统落库成功后并将消息发送至MQ,但是BC系统并没有成功将数据落库,此时数据便不一致了。
 

标签:场景,落库,系统,并发,MQ,使用,推送,数据
From: https://www.cnblogs.com/jamers-rz/p/17700358.html

相关文章

  • 使用Photoshop制作印章的方法,添加杂点一步做旧
    电子文档越来越多了,比如经常收到的报价单等,下面就教大家,如何使用Photoshop做一个印章图片,最终效果图如下:1.新建文件宽度、高度根据需要自定,其他默认。2.新建一个图层,用来放置印章的外圆。3.点击椭圆工具,按住鼠标和shift键,画出一个圆形。4.双击这个圆所在的图层,打开图层样式对......
  • 抓包软件Wireshark常用过滤使用方法命令
    抓包软件Wireshark常用过滤使用方法命令过滤源ip、目的ip。在wireshark的过滤规则框Filter中输入过滤条件。如查找目的地址为192.168.101.8的包,ip.dst192.168.101.8;查找源地址为ip.src1.1.1.1端口过滤。如过滤80端口,在Filter中输入,tcp.port80,这条规则是把源端口和目的端口为80的......
  • 使用R语言查询某物种所有通路及通路内的基因
    使用R语言查询某物种所有通路及通路内的基因,这里使用Y书的clusterProfiler包。这里以人类为例查询所有通路及通路内的基因:library(R.utils)R.utils::setOption("clusterProfiler.download.method","auto")hsa_kegg<-clusterProfiler::download_KEGG("hsa") 这里使用的......
  • .net core(微服务学习)-使用 AgileConfig轻量配置中心
    由于之前项目维护的时候有多个API服务,发布时候又做了高可用多主机均衡负载,环境又有多套,当部署新代码的时候如果有新增配置项需要修改N个环境和服务器实属折磨人    我们知道每个.netcore中都有一个appsettings.json的配置文件,由于之前项目有3个环境,一共有4台主机,每个主......
  • 海康机器人持续推动全场景物流应用,助力3C行业科技赋能
    随着智能制造理念的不断普及,各行各业都在逐步融合科技力量,以科技赋能企业生产,以数字化智能制造标榜生产力水平已经成为一种趋势。桂林深科技有限公司作为广西3C行业代表性企业,积极引入智能生产制造力量,与海康机器人开展二期项目合作,扩大自动化物流覆盖面积,助力产线稳定生产,实现......
  • Three——四、几何体、高光网络材质、锯齿模糊以及GUI库的使用
    Threejs常见几何体简介Three.js常见的几何体:常见的几何体://BoxGeometry:长方体constgeometry=newTHREE.BoxGeometry(100,100,100);//SphereGeometry:球体constgeometry=newTHREE.SphereGeometry(50);//CylinderGeometry:圆柱constgeometry=newTHREE.CylinderGe......
  • HarmonyOS/OpenHarmony应用开发-DevEco Studio帮助快速入门的使用
    DevEcoStudio内置有帮助中心,初学HarmonyOS及OpenHarmony应用、元服务的开发者,通过内置的帮助中去系统的学习相关内容,是边练边学,快速上手的最佳方式。一、帮助二、快速开始三、HarmonyOS应用、元服务开发相关四、OpenHarmony应用、元服开发相关五、更多的常用基础知识与技巧了解学......
  • 微信使用python定时主动群发消息
    目前市面上的微信营销软件,绝大部分是模拟登录或者进程hook外挂形式,属于违规使用微信的范畴,容易被微信官方封号。经过思考后,我觉得利用python自动化UI点击,鼠标键盘操作,是符合真人使用微信的习惯的,被封的风险最低。因为必须是UI自动化,所以我们使用windows系统,并且结合微信电脑版来实......
  • Springboot RocketMQ整合—官方原版
    Doker 技术人自己的数码品牌Doker官网:Doker多克一、添加maven依赖:<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>${RELEASE.VERSION}</version></dependen......
  • 聊城注册商标应该使用公司名义还是个人名义
    聊城注册商标应该使用公司名义还是个人名义恒标知产刘经理15266872201 首先,以个人(自然人)名义注册商标是可行的,但是以自然人身份注册商标就需要满足以下几个条件之一:  (1)个体工商户;  (2)农村承包经营户;  (3)其他依法获准从事经营活动的自然人。 其实公司商标与个人商标没有太多区......