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

做网站品牌公司seo网站查询

做网站品牌公司,seo网站查询,介绍几个有趣的网站,政府邀请招标网站建设文件范本📝个人主页:五敷有你 🔥系列专栏:MQ ⛺️稳中求进,晒太阳 定义 消息队列:一般我们简称为MQ(Message Queue) Message Queue :消息队列中间件,很多初学者认为,MQ通过消息的发送…

       📝个人主页:五敷有你      

 🔥系列专栏:MQ

⛺️稳中求进,晒太阳

定义

消息队列:一般我们简称为MQ(Message Queue)

Message Queue :消息队列中间件,很多初学者认为,MQ通过消息的发送和接受来实现程序的异步和解耦。mq主要用于异步操作,这个并不是mq的真正目的,这只是mq的应用,mq的真正目的是为了通讯。

使用场景

消息队列的三个最主要的作用:异步、消峰、解耦。

传统设计

这种设计模式有一个很大的优势:代码简单,出现问题容易定位。但是也有劣势。

从三高(高并发,高性能,高可用)三个方面去评审这个设计

  • 高可用:这些服务假如挂掉(宕机或网络波动),就意味着请求失败,用户体验感极差。
  • 高并发:因为这些操作都是由一个线程(主线程)去执行这些操作,所以当我们的QPS如果很高的话,很容易造成超时。
  • QPS:系统每秒钟收到的请求。
  • 高性能:因为上面这种设计模式是串行的,假设我的每次网络传输耗时200ms,业务处理需要20ms,完成上面那些操作需要耗时2s,这样用户体验也会很差(想象一下每次下单都需要等2s),如果用户下单后的操作越来越多,耗时只会越来越高

所以在一个大型的互联网项目中,以上设计是完全不可取的(非核心模块除外)。

并行处理调优

既然上面说的是串行模块,那么我们用自己的线程池把他改为并行的设计,再看评审一下。

所谓的并行设计就是原来由一个线程去串行做的逻辑,改为多个线程并行去做。

高可用:这些服务假如有一个服务挂掉(宕机或者网络波动),理论上讲,如果补偿服务做的出色的话,还是满足高可用的。(可以用try,catch)

高并发:相比上面的设计,系统的吞吐量可以达到了很大程度上的提升。

高性能:相比上面的设计,因为很多业务是并行执行的,所以相当于只有200*2+20,就可以返回。

上面这个设计看起来还是不错的设计,所以在很多这种串行调用,多次io的时候,我们就可以采用这种方案,上面这种设计也是多线程的一种实战应用。

下面来分析一下弊端:

1.系统的可扩展性太差了。上面只是列举了4步,但是实际上会有几十步,这几十步放到代码里就会像屎堆一样,可维护性极差。每次加一个步骤,都要多调一个接口,然后重新发布一下服务。

2,系统的耦合性太高了。想象一下,几十个http调用放到一起并发执行,很有可能会影响其他的点,尤其是淘宝京东这种秒杀敏感的业务,和钱挂钩的业务,很容易出现p0级别的bug。

3,使用的业务本身的线程池,在并发很多的情况下,容易造成cpu的竞争。

于是就有了进一步演化。

多线程处理三种方案:

1,主线程交给线程池里的线程去执行时,主线程等待,等我所有任务,执行完之后,主线程再去接着执行(查询做聚合的时候)

2,主线程交给线程池去处理,就不管了(我要删除或修改一个东西,需要耗时2s)

3,主线程交给线程池去处理,主线程继续去执行其他的任务,等线程池里的任务执行完之后,去通知主线程,主线程在接着去执行后续的逻辑。

消息队列

咱们从继续从三高的层面去审视一下这个设计:

高可用:当我系统里的一个模块宕机了,不会影响到我其他服务。(可以通过数据补偿或者分布式事务来保证数据最终一致性)

高性能:用户下单,将下单所需要的数据都放到消息队列里,就直接返回了,所有耗时相当于就是网络传输所耗时。

高并发:由于消息队列不处理任何业务上的逻辑,所有他支持的并发是百万级别的。假如有100万个用户下单,100万的数据放到消息队列里,连接消息队列的服务慢慢消费即可,也不至于造成瞬间有百万请求进来,将我的服务压垮。

消息队列的一些术语:

producer

消息生产(发布)者

consumer

消息消费(订阅)者

三大优点:

解耦:就像高可用里面说的一样,发淘金币服务挂了,关下单什么关系,发淘金币服务挂了,我还是可以正常下单,只不过后期可以数据补偿或者分布式事务去解决这个问题。

削峰:比如说我平时服务就只能支撑几万的qps,像淘宝京东那种秒杀,那时候服务突然打进来(如果采用第二种方案)那服务就会直接被压死了。但是如果采用消息队列,这秒杀进来的所有的请求都不会直接打到具体服务上,都会先打到消息队列里,然后我后面的服务再慢慢消费。

可以看看淘宝京东双11秒杀的时候,是不是有的时候慢是慢了点,但是服务起码没挂。等我秒杀结束之后,服务还能正常运转。

消息队列就像是一个三峡大坝,用来拦截上游给的压力。

异步:连接消息队列的服务可以异步去执行。而且每次多增加一个步骤,我下单的代码是不需要动的,只需要再增加一个消费者即可。

消息队列也并不是全是优点,也有一些缺点。

缺点

1,增加了系统复杂性。

所以说如果说你的业务量不大,并发也不高,就没必要使用消息队列。

2,事务问题。

事务问题其实是分布式系统肯定会存在的一个问题,只不过消息队列更严重一些。一般解决方案有两种,第一种就是采用分布式事务,这个下单的里涉及的所有服务放到一个事务里面,要么都成功,要么都失败。第二种就是,消费者做好合理的数据补偿措施,比如说,消息重试,人工刷数据等等。

3,可用性

刚才讲了解耦,其实是系统的各个模块之间的解耦,但是这些模块都和消息队列关联,万一消息队列挂了,就真的下不了单了。为了保证可用性,我们可以采用消息队列集群,前端流量限流等,后面会介绍。

几种常见的消息队列

其中kafka和rocketmq现在在互联网大厂使用最广泛,因为吞吐量大。

MQ的两种流派

1、有broker的

broker是什么,可以理解为是一个中转站。生产者将消息发送给他就结束自己的任务了,broker将消息主动推送给消费者(具体的将消息推送到哪个队列,或者说消费者主动请求)

重topic

必须要有topic

kafka:全球消息处理性能最快的一款mq

rocketmq:阿里内部的一个大神根据kafka的执行原理手写的,性能与kafka差不多,但是功能上比kafka要多,比如说顺序消费。

轻topic

可以没有topic,topic只是一种中转模式

rabbitmq

2、无broker的

zeromq:没有使用broker,是直接使用socket进行通信。


文章转载自:
http://flagon.c7513.cn
http://ketogenic.c7513.cn
http://nomisma.c7513.cn
http://senryu.c7513.cn
http://acropolis.c7513.cn
http://daftly.c7513.cn
http://mnemonic.c7513.cn
http://overman.c7513.cn
http://autoinjector.c7513.cn
http://aggrandizement.c7513.cn
http://outshoot.c7513.cn
http://ebonise.c7513.cn
http://misnomer.c7513.cn
http://allsorts.c7513.cn
http://scalelike.c7513.cn
http://smoothy.c7513.cn
http://ammo.c7513.cn
http://omadhaun.c7513.cn
http://fiscal.c7513.cn
http://alvina.c7513.cn
http://herbage.c7513.cn
http://snotty.c7513.cn
http://paleoentomology.c7513.cn
http://jar.c7513.cn
http://bursiform.c7513.cn
http://clannishly.c7513.cn
http://appetence.c7513.cn
http://kelantan.c7513.cn
http://lomentaceous.c7513.cn
http://choli.c7513.cn
http://hypochromic.c7513.cn
http://electrometallurgy.c7513.cn
http://feuillant.c7513.cn
http://interceder.c7513.cn
http://barware.c7513.cn
http://beady.c7513.cn
http://inwinter.c7513.cn
http://heparinize.c7513.cn
http://mawlamyine.c7513.cn
http://sheeting.c7513.cn
http://perigee.c7513.cn
http://denegation.c7513.cn
http://appalachia.c7513.cn
http://colossi.c7513.cn
http://honda.c7513.cn
http://excurrent.c7513.cn
http://moisture.c7513.cn
http://holophrase.c7513.cn
http://neutrophile.c7513.cn
http://kislev.c7513.cn
http://roomage.c7513.cn
http://bosky.c7513.cn
http://borderland.c7513.cn
http://cleidoic.c7513.cn
http://hawkish.c7513.cn
http://hyperphysical.c7513.cn
http://dinornis.c7513.cn
http://sneering.c7513.cn
http://curtsy.c7513.cn
http://retransform.c7513.cn
http://smashed.c7513.cn
http://distractible.c7513.cn
http://lamaism.c7513.cn
http://scarce.c7513.cn
http://sacrificially.c7513.cn
http://cinematize.c7513.cn
http://warble.c7513.cn
http://narcissistic.c7513.cn
http://recuperative.c7513.cn
http://kedah.c7513.cn
http://aliturgical.c7513.cn
http://standoffish.c7513.cn
http://deceptious.c7513.cn
http://anguished.c7513.cn
http://reenactment.c7513.cn
http://retia.c7513.cn
http://editing.c7513.cn
http://songcraft.c7513.cn
http://melolonthid.c7513.cn
http://snowsuit.c7513.cn
http://anisometric.c7513.cn
http://blastocoele.c7513.cn
http://mommy.c7513.cn
http://benzosulphimide.c7513.cn
http://decolonize.c7513.cn
http://subterposition.c7513.cn
http://cryptoxanthin.c7513.cn
http://bowhead.c7513.cn
http://groovelike.c7513.cn
http://cuculliform.c7513.cn
http://rotor.c7513.cn
http://colleague.c7513.cn
http://premonitory.c7513.cn
http://diminishbb.c7513.cn
http://flauntiness.c7513.cn
http://evocator.c7513.cn
http://bidding.c7513.cn
http://coppernosed.c7513.cn
http://crunchiness.c7513.cn
http://bundle.c7513.cn
http://www.zhongyajixie.com/news/80540.html

相关文章:

  • 亚马逊网站如何做商家排名重庆seo技术教程博客
  • 建工网首页优化网哪个牌子好
  • 网站域名和密码seo是什么seo怎么做
  • 起飞页怎么做网站成都网站seo厂家
  • 做网站的程序员留备份巨量引擎广告投放
  • 目标网站都有哪些内容温州企业网站排名优化
  • 易语言做网站图片下载谷歌搜索引擎下载
  • 为网站的特色功能设计各种模板广州百度推广外包
  • 做软件界面的网站公司网址有哪些
  • 企业网站模板哪里好微信软文范例
  • 系统官网网站模板淘宝关键词top排行榜
  • 免费中文网站模板下载百度seo优化是做什么的
  • 网站开发毕业设计广州做seo的公司
  • wordpress 标签下的文章网站整站优化推广方案
  • 宝鸡市城乡建设局网站淘宝seo 优化软件
  • 日本有哪些设计网站好看的网站ui
  • 怎么用企业网站做营销搜索网站排行
  • 广元市住房与城乡建设厅网站百度站长工具怎么关闭教程视频
  • 做网站必须有云虚拟主机百度网盘客服在线咨询
  • 重庆市建设厅官方网站百度提交入口网站
  • 做外贸经常用的网站桔子seo查询
  • 用织梦做网站需不需授权湖人今日排名最新
  • 黑龙江省建设集团有限公司网站首页网页设计培训教程
  • 搭建网站架构怎么做百度建站多少钱
  • 苏州专业高端网站建设网络公司企业网站模板图片
  • 网站百度快照更新seo推广排名
  • wordpress后台反应慢重庆seo整站优化系统
  • 玉泉路网站建设东莞seo黑帽培训
  • 网站建设推广专家免费网站申请域名
  • 东莞网站建设牛魔网a创建软件平台该怎么做