游戏攻略网
当前位置: 首页 游戏攻略

消息队列简介(消息队列这么多)

时间:2023-07-28 作者: 小编 阅读量: 1 栏目名: 游戏攻略

业界比较出名的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。而引入消息队列,则可以解决这个问题,实现能力复用,业务解耦。比如天猫双十一秒杀日,特别是0点的时候,流量起码是平常的千倍以上,如果不做好处理,一波就能彻底将服务打死。削峰针对是单个请求ok,但是流量突发的场景。所以优先选Kafka和RocketMQ这种更高吞吐的。只有熟悉每个消息队列的优劣,才能好中取优,选出适合的方案。

提到消息队列,大家一定不陌生,无论是在校、面试还是工作,我们涉及得都很多。

有需求就有供应,市面上消息队列当然非常多,算得上主流的也有5、6个,而大家可能由于对某一种队列比较熟悉,就一直用它,大概就是亚瑟打野、亚瑟上路、亚瑟中路、亚瑟辅助。

但你有思考过吗引入的队列是否是最合适的吗?

它与其它队列相比有什么优势吗?

可以说,选型是开发工作中最重要,也是最体现能力的一环。今天牛牛就来给大家介绍下消息队列如何抉择。

消息队列是什么?

消息队列,顾名思义就是传递消息的队列,有着先入先出的特性,既然是队列,自然遵循先入先出的原则,同时,消息队列具备可靠性、高性能等特点。

消息队列是大型分布式系统不可缺少的中间件,一般用于异步流程、消息分发、流量削锋等问题,可以通过消息队列实现高性能、高可用、高扩展的架构。

业界比较出名的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。

那大家就会问了,这么多消息队列,我选谁好呢?

别急,我们先来深入理一理消息队列的应用场景,以及每个队列的特色,知道这些信息,才好做出决策。

消息队列的应用场景

  1. 异步

如果一个接口,处理时间很长,而且不能通过水平扩容来解决,就需要异步,那么,什么情况下不能通过水平扩容解决呢?

有很多,比如视频处理,涉及到视频下载,那受限于网络带宽等因素,扩容无用;比如区块链这种共识场景,只有单机才能出块,扩容也没有用;还有更常见的,比如一个业务流程,过了10多个微服务,单个也许不长,加起来就很难接受。

以上的情况下,用户很难通过同步接口长时间等待结果,那就应该做成异步,先扔进消息队列,后续再进行消费,响应时间可以从10s,降低到10ms。

2.消息分发

假设一个核心服务A,是用来发布某种信号的,发布之后,需要通知到下游服务B、C,这种模式在只有B、C两兄弟的时候,没啥问题。

但随着业务需要,可能会有D、E、F等更多的打工人出现,这时候A服务就需要更改代码,将消息也传递给这些新加入的兄弟,每次增加打工人,就需要更改一次代码。

而引入消息队列,则可以解决这个问题,实现能力复用,业务解耦。

3.削峰

业务有个概念叫峰值流量,也就说流量在一段时间远大于平时,从视图上看就像一个山峰。比如天猫双十一秒杀日,特别是0点的时候,流量起码是平常的千倍以上,如果不做好处理,一波就能彻底将服务打死。

如果常备1000倍流量的设备,那是极大的成本浪费,如果临时调配,进行服务扩容,很多时候又不如想象得简单。

之前有和Shopee的同学聊过,一到活动日他们就得紧锣密鼓去做扩容,扩容之后还得熬更守夜地做压测,不光劳命伤财、还容易出事故。

消息队列可以优雅地解决这个问题,将双十一的请求扔入消息队列,等待后续服务慢慢处理,如下图所示。

其实在架构上,削峰和上面的异步场景是相同的架构,都是将请求扔入队列中,再慢慢消费。

但要注意异步场景是单个请求,本身处理时间很长。削峰针对是单个请求ok,但是流量突发的场景。

消息队列能力对比

上面有提到几个知名的消息队列,其中ZeroMQ太过轻量,主要用于学习,实际是不会应用到生产,我们就Kafka、ActiveMQ、RabbitMQ、RocketMQ来进行不同维度对比。

特性

ActiveMQ

RabbitMQ

RocketMQ

Kafka

单机吞吐量

万级

万级

10 万级

10 万级

时效性

毫秒级

微秒级

毫秒级

毫秒级

可用性

高(主从)

高(主从)

非常高(分布式)

非常高(分布式)

消息重复

至少一次

至少一次

至少一次

最多一次

至少一次

最多一次

消息顺序性

有序

有序

有序

分区有序

支持主题数

千级

百万级

千级

百级,多了性能严重下滑

消息回溯

不支持

不支持

支持(按时间回溯)

支持(按offset回溯)

管理界面

普通

普通

完善

普通

消息队列选型

选型的时候,我们需要根据业务场景,结合上述特性来进行选型。

比如你要支持天猫双十一类超大型的秒杀活动,这种一锤子买卖,那管理界面、消息回溯啥的不重要。

我们需要看什么?看吞吐量!

所以优先选Kafka和RocketMQ这种更高吞吐的。

比如做一个公司的中台,对外提供能力,那可能会有很多主题接入,这时候主题个数又是很重要的考量,像Kafka这样百级的,就不太符合要求,可以根据情况考虑千级的RocketMQ,甚至百万级的RabbitMQ。

又比如是一个金融类业务,那么重点考虑的就是稳定性、安全性,分布式部署的Kafka和Rocket就更有优势。

特别说一下时效性,RabbitMQ以微秒的时效作为招牌,但实际上毫秒和微秒,在绝大多数情况下,都没有感知的区别,加上网络带来的波动,这一点在生产过程中,反而不会作为重要的考量。

其它的特性,如消息确认、消息回溯,也经常作为考量的场景,管理界面的话试公司而定了,反正牛牛呆过的地方,都不看重这个,毕竟都有自己的运维体系。

最后

本次,牛牛给大家分享了消息队列是什么、解决什么问题、每种队列的特性,以及怎么结合场景和特性做分析。

面试时可以针对每个场景的不同因地制宜选取队列,这样不仅可以展现知识的全面性还可以体现出自己分析问题的能力。

而在实际的工作中,我们需要考虑的则更多,比如团队的技术栈、经济成本等情况进行综合分析。只有熟悉每个消息队列的优劣,才能好中取优,选出适合的方案。

    推荐阅读
  • steam棋牌游戏推荐(幸运之夜新版本亮相TGC)

    steam棋牌游戏推荐12月1日,2017腾讯游戏嘉年华正式在成都开幕,腾讯的VR社交游戏《幸运之夜》在现场发布了最新版本。VR《幸运之夜》在TGC2017上惊艳亮相《幸运之夜》新版本发布邀请好友一起游戏今年7月底,《幸运之夜》正式在Steam发布,并推出了首款游戏作品“德州扑克”。今年的TGC2017现场,《幸运之夜》全新版本便带来了对互动性方面的提升。

  • 儿童睡前故事卖火柴的小女孩大全(卖火柴的小女孩)

    在长发公主的故事里,兔子小姐变成了手持宝剑的骑士,穿过了山川和河流,战胜了地狱恶犬,最终救出了长着一头金黄色长发的熊猫先生。随着一阵空间的波动,熊猫先生和兔子小姐来到了冰天雪地的圣诞节。小女孩被这突如其来的变化惊呆了。熊猫先生没有回答,轻轻摸了摸小女孩的头。小女孩点燃了第二根火柴。熊猫先生和兔子小姐则来到壁炉前,商量起小女孩最后一个愿望。熊猫先生蹲下来,握起小女孩的手。

  • 怎样做ppr管快一点(PPR管安装方法及技巧)

    怎样做ppr管快一点PPR管安装方法及技巧首先准备好需要的材料:热熔机,小剪刀,ppr管,管件,手巾。一定要根据自己热熔ppr管的口径,准备相应的热熔头。清洁:清洁管材与管件的焊接段部位,建议用95%浓度酒精擦净。在熔接时间内迅速的将管材无旋转的垂直插入管件中,并维持5秒以上,然后按相应冷却时间冷却。热熔后做到横平竖直,美观大方。

  • 大托特包搭配技巧(大托特包搭配技巧简述)

    西装外套+托特包复古时尚的格子,由黑白交错的条纹形成,文艺而又端庄搭配撞色托特包,优雅而不失俏皮,让气场变得灵动起来内搭白色连帽卫衣,减龄又可爱,接下来我们就来聊聊关于大托特包搭配技巧?大托特包搭配技巧西装外套+托特包复古时尚的格子,由黑白交错的条纹形成,文艺而又端庄。衬衫+托特包白色的衬衫休闲慵懒,给人一种空灵的感觉以及干净纯粹的气质。

  • 刘涛电视剧口碑(电视剧景气指数第一)

    还记得3月份刘涛在和周渝民主演的《大宋宫词》中扮嫩出演少妇被很多观众吐槽。万万没想到时隔数月,刘涛带着她的新剧《星辰大海》杀回来了。目前主要的剧情线在刘涛饰演的女主简爱身上。因为小时候意外发现母亲出轨的事,得知真相的父亲激愤之下杀死母亲并自杀,简爱因此成为了一个孤女。逃出傻子家的简爱在与姑姑的争执中误伤姑姑,从此开启逃命生涯。简爱从面馆辞职走投无路,误打误撞进入大公司之后面临着同事的故意刁难。

  • 外墙装修材料有哪些 外墙装修材料有哪些类型

    外墙涂料具有装饰性良好、耐污染耐老化以及施工维修容易和价格合理的特点。一般来说釉面外墙砖有亚光面与无光面两大类。它的装饰的效果也不错,有柚木色、深灰色等等可供选择。由于它的表面的肌理很清晰,所以色泽漂亮且装饰性极强。本站,中国知名大型装修平台,装修领导品牌。

  • 世界上有哪些花(世界上有哪些花 名字)

    瓜叶菊、香豌豆、夏兰、石竹、石蒜、荷花、翠菊、睡莲、福禄考、晚香玉、万寿菊、千日红、建兰、铃兰、报岁兰、香堇、大岩桐、水仙、小草兰、瓜叶菊、蒲包花、免子花、入腊红、三色堇、百日草、鸡冠花、一串红。孔雀草、大波斯菊、金盏菊、非洲凤仙花、菊花、非洲菊、观赏凤梨类、射干、非洲紫罗兰、天堂鸟、炮竹红、菊花、康乃馨、红掌、满天星、星辰花、三角梅、虞美人。

  • 长歌行李长歌母亲是谁杀的(长歌行李长歌的简介)

    下面更多详细答案一起来看看吧!长歌行李长歌母亲是谁杀的《长歌行》李长歌母亲是自杀的。李长歌,太子李建成之女,生母则是回纥王族。父母手足均死于玄武门之变,满怀愤恨的长歌凭高超武艺逃出皇宫,并在追捕过程中制造“坠崖假死”而逃生,其后女扮男装隐瞒身份流落民间,一心只想为父母复仇,在家和国的利害冲突中,最后放弃复仇,和阿诗勒隼一起成为了民族和解的使者。

  • 什么时候喝蛋白粉增肌效果最好(什么时候喝蛋白粉增肌效果最好)

    从长远来看,这种方法被证明可以促使肌肉明显增长。如果摄入量超过一定的阈值,蛋白质的合成就会受限。如果是以乳清饮料的形式摄入乳清蛋白,运动者可以在运动结束后立即饮用。按每公斤体重1克的标准,在健身前后立即摄入以及在运动后1小时内摄入可快速吸收的碳水化合物,可以明显抑制肌肉分解,并大大促进肌肉快速和明显的增长。在这种情况下,大量分泌的胰岛素促进了氨基酸向工作中的肌肉运输,为蛋白质合成奠定基础。

  • 窦骁周冬雨山楂树之恋结局(周冬雨18岁第一次出演)

    周冬雨18岁第一次出演要说最近最火的电影,非《少年的你》莫属,上映14天,已经收获了12.45亿的票房成绩,成为现阶段最强的票房黑马而作为该片主演的周冬雨和易烊千玺,也凭借在该片中的精彩演出,演技得到大众的进一步认可作为“。