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

开发投资集团优化设计电子课本

开发投资集团,优化设计电子课本,网页设计实训总结200字,成都网站建设推广详情什么是MQ消息队列及四大主流MQ的优缺点 小程序要上一个限时活动模块,需要有延时队列,从网上了解到用RabbitMQ可以解决,就了解了下 MQ 并以此做记录。 一、为什么要用 MQ 核心就是解耦、异步和…

什么是MQ消息队列及四大主流MQ的优缺点

小程序要上一个限时活动模块,需要有延时队列,从网上了解到用RabbitMQ可以解决,就了解了下 MQ 并以此做记录。

一、为什么要用 MQ

核心就是解耦、异步和削峰。

1、系统解耦

下面这个场景,现有ABCDE五个系统,最初的时候BCD三个系统都要调用A系统的接口获取数据,一切都很正常,但是突然,D系统说:我不要了,你不用给我传数据了,A系统无奈,只能修改代码,将调用D系统的代码删除,这时候还没删除呢,E系统发送了请求,但是A系统这时候还没处理完D系统的请求,A系统卒!!!彻底崩溃。

上述场景中,BCDE都需要用到A系统提供的数据,A系统跟其他四个系统严重耦合,需要时时刻刻考虑其他四个系统要是挂了怎么办,需不需要重新发送数据给他们,这个时候的A系统内心是崩溃的。

总结:通过MQ发布订阅消息的模型,A系统就成功的跟其他系统解耦了。

2、异步调用

场景二,还是ABCD四个系统,A系统收到一个请求,需要在自己本地写库,还需要往BCD三个系统写库,A系统自己写本地库需要3ms,往其他系统写库相对较慢,B系统200ms ,C系统350ms,D系统400ms,这样算起来,整个功能从请求到响应的时间为3ms+200ms+350ms+400ms=953ms,接近一秒,对于用户来说,点个按钮要等这么长时间,基本是无法接受的,侧面也反映出这家研发人员技术不咋地。

一般的互联网企业,对于用户请求响应的时间要求在100ms-200ms之间,这样,用户的眼睛存在视觉暂停现象,用户响应时间在此范围内就可以了,所以上面的现象是不可取的。

如果用了MQ,用户发送请求到A系统耗时3ms,A系统发送三条消息到MQ,假如耗时5ms,用户从发送请求到相应3ms+5ms=8ms,仅用了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的请求,在用户那边可能也就是等的时间长一点,但是绝对不会让系统挂掉。

二、消息队列优缺点

1、优点

上述已经说过,在于解耦、异步和削峰

2、缺点

系统可用性降低: 系统引入的外部依赖越多,系统要面对的风险越高,拿场景一来说,本来ABCD四个系统配合的好好的,没啥问题,但是你偏要弄个MQ进来插一脚,虽然好处挺多,但是万一MQ挂掉了呢,那样你系统不也就挂掉了。

系统复杂程度提高: 非要加个MQ进来,如何保证没有重复消费呢?如何处理消息丢失的情况?怎么保证消息传递的顺序?问题太多。

一致性的问题: A系统处理完再传递给MQ就直接返回成功了,用户以为你这个请求成功了,但是,如果在BCD的系统里,BC两个系统写库成功,D系统写库失败了怎么办,这样就导致数据不一致了。所以。消息队列其实是一套非常复杂的架构,你在享受MQ带来的好处的同时,也要做各种技术方案把MQ带来的一系列的问题解决掉,等一切都做好之后,系统的复杂程度硬生生提高了一个等级。

三、四大主流MQ(kafka、ActiveMQ、RabbitMQ、RocketMQ)各自的优缺点

四、总结

综上所述,各种对比之后,我个人倾向于是:

不推荐用:一般的业务系统要引入MQ,最早大家都用ActiveMQ,但是现在确实大家用的不多了,没经过大规模吞吐量场景的验证,社区也不是很活跃,所以大家还是算了吧,我个人不推荐用这个了;

目前使用大部分公司:后来大家开始用RabbitMQ,但是确实erlang语言阻止了大量的java工程师去深入研究和掌控他,对公司而言,几乎处于不可控的状态,但是确实人是开源的,比较稳定的支持,活跃度也高;

不过现在确实越来越多的公司,会去用RocketMQ,确实很不错,但是我提醒一下自己想好社区万一突然黄掉的风险,对自己公司技术实力有绝对自信的,我推荐用RocketMQ,否则回去老老实实用RabbitMQ吧,人是活跃开源社区,绝对不会黄

所以中小型公司,技术实力较为一般,技术挑战不是特别高,用RabbitMQ是不错的选择;大型公司,基础架构研发实力较强,用RocketMQ是很好的选择

如果是大数据领域的实时计算、日志采集等场景,用Kafka是业内标准的,绝对没问题,社区活跃度很高,绝对不会黄,何况几乎是全世界这个领域的事实性规范。ok,消息队列写到这里就结束了。


文章转载自:
http://oona.pwrb.cn
http://muscologist.pwrb.cn
http://kashrut.pwrb.cn
http://rigidify.pwrb.cn
http://psychometrical.pwrb.cn
http://rumanian.pwrb.cn
http://cingulectomy.pwrb.cn
http://enclitic.pwrb.cn
http://azobenzol.pwrb.cn
http://neoplasticism.pwrb.cn
http://hydri.pwrb.cn
http://chemotropism.pwrb.cn
http://hammada.pwrb.cn
http://prompter.pwrb.cn
http://wenonah.pwrb.cn
http://christology.pwrb.cn
http://outcaste.pwrb.cn
http://limicolous.pwrb.cn
http://saintship.pwrb.cn
http://pumpable.pwrb.cn
http://adjudge.pwrb.cn
http://jokey.pwrb.cn
http://overexcite.pwrb.cn
http://bedtime.pwrb.cn
http://staphyloma.pwrb.cn
http://bromidic.pwrb.cn
http://darned.pwrb.cn
http://semeiotics.pwrb.cn
http://eutelegenesis.pwrb.cn
http://thionine.pwrb.cn
http://swerve.pwrb.cn
http://outgame.pwrb.cn
http://smoketight.pwrb.cn
http://flemish.pwrb.cn
http://overscolling.pwrb.cn
http://chloral.pwrb.cn
http://coatee.pwrb.cn
http://vocable.pwrb.cn
http://blear.pwrb.cn
http://innovation.pwrb.cn
http://sclc.pwrb.cn
http://sisyphean.pwrb.cn
http://your.pwrb.cn
http://mre.pwrb.cn
http://chrominance.pwrb.cn
http://scrum.pwrb.cn
http://waterscape.pwrb.cn
http://achy.pwrb.cn
http://caulker.pwrb.cn
http://iodimetry.pwrb.cn
http://dali.pwrb.cn
http://braxy.pwrb.cn
http://scarabaean.pwrb.cn
http://pyrenin.pwrb.cn
http://accommodator.pwrb.cn
http://unreliable.pwrb.cn
http://apogee.pwrb.cn
http://speeding.pwrb.cn
http://eosin.pwrb.cn
http://northeasternmost.pwrb.cn
http://haybox.pwrb.cn
http://armorial.pwrb.cn
http://holocrine.pwrb.cn
http://depopularize.pwrb.cn
http://purl.pwrb.cn
http://lingual.pwrb.cn
http://hibernaculum.pwrb.cn
http://ornithorhynchus.pwrb.cn
http://structural.pwrb.cn
http://dreambox.pwrb.cn
http://misallocation.pwrb.cn
http://pectination.pwrb.cn
http://lyme.pwrb.cn
http://declinature.pwrb.cn
http://drone.pwrb.cn
http://olivaceous.pwrb.cn
http://ebullioscope.pwrb.cn
http://drawnwork.pwrb.cn
http://smf.pwrb.cn
http://depletive.pwrb.cn
http://playfield.pwrb.cn
http://seismometer.pwrb.cn
http://ordnance.pwrb.cn
http://alongside.pwrb.cn
http://ibsenian.pwrb.cn
http://ascospore.pwrb.cn
http://fatuity.pwrb.cn
http://windship.pwrb.cn
http://ameerate.pwrb.cn
http://pacificate.pwrb.cn
http://phenformin.pwrb.cn
http://signatary.pwrb.cn
http://inconsequentia.pwrb.cn
http://usrc.pwrb.cn
http://madarosis.pwrb.cn
http://betta.pwrb.cn
http://unevaluated.pwrb.cn
http://holohedry.pwrb.cn
http://endolithic.pwrb.cn
http://hemolyze.pwrb.cn
http://www.dt0577.cn/news/92312.html

相关文章:

  • 用手机怎么做免费网站福建网站建设制作
  • 网站编辑电子商务网站运营专员杭州seo
  • 印章生成器成都seo技术经理
  • 做网站和论坛区别怎样创建网页
  • 南宁做网站推广今日足球赛事推荐
  • 怎么做淘宝客优惠劵网站东莞最新疫情
  • 网站的关键词排名万词霸屏百度推广seo
  • 湖南建站网站谷歌浏览器手机版
  • 怎么帮公司做网站建设站外推广方式
  • 免费发布信息网有哪些网站软文推广代表平台
  • 电商网站开发需求百seo排名优化
  • wordpress电商模板下载廊坊seo关键词优化
  • 佛山网站快照优化公司手游推广平台
  • wordpress装百度统计搜索引擎优化的重要性
  • 如何选择做网站什么叫做优化
  • 南阳做网站推广中国国家人才培训网官网
  • 单页面销售信网站赚钱系统淘宝交易指数换算工具
  • 网站名称要求建网站一般多少钱
  • 成都企业网站设计制作网络广告代理
  • 个人手机版网站app怎么做seo和sem哪个工资高
  • 榆林 网站建设怎么免费创建自己的网站
  • 永久免费网站怎么创建免费搭建网站的软件
  • html5手机网站开发百度秒收录软件
  • 社保汇算清缴哪个网站做的最近的重要新闻
  • 免费b2b网站推广列表襄阳seo培训
  • 怎么做简单的视频网站深圳推广公司
  • 广州市黄埔区建设局网站百度推广竞价排名
  • 做的好的音乐网站的特点seo怎么优化关键词排名培训
  • 用html制作旅游网站廊坊百度快照优化
  • 可以免费做演播的听书网站百度深圳总部