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

定制化网站开发报价磐安住房和城乡建设部网站

定制化网站开发报价,磐安住房和城乡建设部网站,企业营销型网站seo推广,wordpress主题 小工具MQ消息队列详解以及MQ重复消费问题 1、解耦2、异步调用3、流量削峰4、MQ重复消费问题#xff0c;以及怎么解决#xff1f;4.1、重复消费产生4.2、解决方法#xff1a; https://blog.csdn.net/qq_44240587/article/details/104630567 核心的就是#xff1a;解耦、异步、削锋… MQ消息队列详解以及MQ重复消费问题 1、解耦2、异步调用3、流量削峰4、MQ重复消费问题以及怎么解决4.1、重复消费产生4.2、解决方法 https://blog.csdn.net/qq_44240587/article/details/104630567 核心的就是解耦、异步、削锋 1、解耦 现有ABCDE五个系统最初的时候BCD三个系统都要调用A系统的接口获取数据一切都很正常但是突然D系统说我不要了你不用给我传数据了A系统无奈只能修改代码将调用D系统的代码删除这时候还没删除呢E系统发送了请求但是A系统这时候还没处理完D系统的请求A系统卒彻底崩溃。看下图↓↓↓↓↓↓↓↓↓↓↓ 上述场景中BCDE都需要用到A系统提供的数据A系统跟其他四个系统严重耦合需要时时刻刻考虑其他四个系统要是挂了怎么办需不需要重新发送数据给他们这个时候的A系统内心是崩溃的。但是如果使用了MQ之后 A系统的数据只需要放到MQ里面其他的系统想请求获取数据只需要去MQ里面消费即可如果突然不想请求了就取消对MQ的消费就行了A系统根本不需要考虑给谁去响应这个数据也不需要去维护代码也不用考虑其他系统是否调用成功失败超时等情况。详细看下图↓↓↓↓↓↓↓↓ 总结通过MQ发布订阅消息的模型A系统就成功的跟其他系统解耦了。 面试技巧你需要思考一下在你自己的系统里面有没有类似的情况一个系统或者模块调用了多个系统或者模块它们互相之间的调用非常复杂并且维护起来很麻烦但其实这个调用是不需要直接同步调用接口的如果用MQ给它异步化解耦也是可以的你就需要思考在你的项目里是不是可以用MQ给它进行系统的解耦可以自己组织一下语言回答。 2、异步调用 场景二还是ABCD四个系统A系统收到一个请求需要在自己本地写库还需要往BCD三个系统写库A系统自己写本地库需要3ms往其他系统写库相对较慢B系统200ms C系统350msD系统400ms这样算起来整个功能从请求到响应的时间为3ms200ms350ms400ms953ms接近一秒对于用户来说点个按钮要等这么长时间基本是无法接受的正常来讲互联网行业通常要求是响应时间200ms。详情如下图↓↓↓↓↓↓ 一般的互联网企业对于用户请求响应的时间超时了所以上面的现象是不可取的 如果用了MQ用户发送请求到A系统耗时3msA系统发送三条消息到MQ假如耗时5ms用户从发送请求到相应3ms5ms8ms仅用了8ms用户的体验非常好。 3、流量削峰 场景三这次举个实例吧也是近期发生的我们都知道 2020年爆发的这场新冠病毒导致各大线上商城APP里面的口罩被抢购一空在这种情况下JD商城开启了一场每晚八点的抢购3Q口罩的活动每天下午三点进行预约晚上八点抢购从JD商城刚上线这个活动我连续抢了近一个周也算是见证了一个百万并发量系统从出现问题到完善的一个过程最初第一天我抢购的时候一百多万预约到八点抢购估计也能有百万的并发量可是第一天到八点我抢的时候由于并发量太高直接把JD服务器弄崩了直接报了异常可能JD在上线这个活动的时候也没能够想到会有那么高的并发打了一个猝不及防但是这只是在前一两天出现报异常的情况后面却没有再出现异常信息到后来再抢购只是响应的时间变得很慢但是JD系统并没有崩溃这种情况下一般就是用了MQ或者之前用了MQ这次换了个吞吐量级别更高的MQ也正是利用了MQ的三大好处之一——削峰。 JD系统每天0—19点系统风平浪静结果一到八点抢购的时候每秒并发达到百万 假设JD数据库没秒能处理1.5w条并发请求并非实际数据主要为了举例,到八点抢购的时候每秒并发百万这直接导致系统异常但是八点一过可能也就几万用户在线操作每秒的请求可能也就几百条对整个系统毫无压力。 如果使用了MQ每秒百万个请求写入MQ因为JD系统每秒能处理1W的请求JD系统处理完然后再去MQ里面再拉取1W的请求处理每次不要超过自己能处理的最大请求量就ok这样下来等到八点高峰期的时候系统也不会挂掉但是近一个小时内系统处理请求的速度是肯定赶不上用户的并发请求的所以都会积压在MQ中甚至可能积压千万条但是高峰期过后每秒只会有一千多的并发请求进入MQ但是JD系统还是会以每秒1W的速度处理请求所以高峰期一过JD系统会很快消化掉积压在MQ的请求在用户那边可能也就是等的时间长一点但是绝对不会让系统挂掉。 消息队列的缺点 虽然好处挺多但是万一MQ挂掉了呢那样你系统不也就挂掉了 系统复杂程度提高 所以中小型公司技术实力较为一般技术挑战不是特别高用RabbitMQ是不错的选择 4、MQ重复消费问题以及怎么解决 4.1、重复消费产生 1、生产者生产者可能会重复推送一条数据到MQ中比如Colltroller节课被重复调用了两次没有做节课幂等性导致的。 2、MQ在消费者从MQ中获取了数据并准备给响应ACK消息到MQ时这时MQ突然挂掉了导致MQ以为消费者还未消费该数据MQ恢复后再次推送了该条信息导致重复消费。 3、消费者消费者已经消费完信息正准备但是还未响应给MQ信息时此时消费者挂了服务重启后MQ以为消费者还未接收到该消息再次推送了该条消息。 4.2、解决方法 1、使用数据库唯一键约束 缺点局限性很大仅仅只能用在我们数据新增场景并且性能也比较低。 2、生产者发送消息的时候带上一个全局唯一的id,消费者拿到消息后先根据这个id去redis里查一下之前有没消费过没有消费过就处理并且写入这个id到redis如果消费过了则不处理。
http://www.hkea.cn/news/14513859/

相关文章:

  • 北京做erp报价的网站网络规划设计师教程第四版
  • 黄山公司做网站中区网站建设
  • 公司网站域名注册流程txt 发布 wordpress
  • win2003服务器网站管理工具高端网站定做
  • 零食网站色调搭配怎么做珠江网站建设
  • 一般网站用什么技术做的广源建设集团网站
  • 校园网站建设申请企业网站定制开发一条龙全包
  • 做网站如何分工搜索引擎网站使用的排名规则
  • 怎样登录建设互联网站连云港做网站建设
  • 阿里云 iis 多个网站南京网
  • 设计公司网站的主页怎么做深圳有限公司官网
  • 成都市四方建设工程监理有限公司网站svg图片做网站背景
  • 自己做的旅游网站 介绍深圳做生鲜食材的网站叫什么
  • 做网站选择什么相机张雪峰谈广告学就业
  • 郑州网站关键词排名wordpress安装成功后怎么进后台
  • 胶州做淘宝的网站网店推广的作用是什么
  • 建站平台绑定域名兰州网站建设论坛
  • 百度验证网站有什么用如何做网站推广方法
  • 关于我们网站模板中国企业500强标准
  • 做门面商铺比较好的网站提供营销型网站价格
  • 做暖暖小视频网站网站建设班级通讯录
  • 简单的电商网站iis部署网站提示建设中
  • 北京建设银行官方网站银行门户网站建设
  • 网站登录后不显示内容网站架构的建设
  • 怎么建设商品网站wordpress登陆没反应
  • 网站语言切换功能如何做济南百度推广电话
  • 能上外国网站dns移动互联网软件开发
  • 专业企业网站制作怎么做网站维护难做
  • 河北盛通公路建设有限公司网站wordpress小说站模版
  • 江河建设集团有限公司网站广西建筑模板