美文网首页Java程序员拾穗
细数MQ那些不得不说的8大好处

细数MQ那些不得不说的8大好处

作者: 中间件小哥 | 来源:发表于2018-06-15 15:17 被阅读0次

消息队列(MQ)是目前系统架构中主流方式,在大型系统及大数据中广泛采用。对任何架构或应用来说, MQ都是一个至关重要的组件。今天我们就来细数MQ那些不得不说的好处。

好处一:解耦

在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。

比如我们的货款抵扣业务场景,用户生成订单发送MQ后立即返回,结算系统去消费该MQ进行用户账户金额的扣款。这样订单系统只需要关注把订单创建成功,最大可能的提高订单量,并且生成订单后立即返回用户。而结算系统重点关心的是账户金额的扣减,保证账户金额最终一致。

好处二:冗余

有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。MQ把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多MQ所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。

好处三:扩展性

因为MQ解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。就比如DMS分布式消息服务,不需要改变代码、不需要调节参数。扩展就像调大电力按钮一样简单。

好处四:灵活性和峰值处理能力

在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见;如果为以能处理这类峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用MQ能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。

还是以订单系统和结算系统场景为例,如果订单系统通过RPC框架来调用结算系统,在有高峰促销的情况下生成订单的量会非常大,而且由于生成订单的速度也非常快,这样势必会给结算系统造成系统压力,服务器利用率则会偏高,但在不是高峰的时间点订单量比较小,结算系统的服务器利用率则会偏低。对于结算系统来说就会出现下面这样的高峰波谷现象图。

那么如果通过MQ的方式,将订单存储到MQ队列中,消费端通过拉取的方式,并且拉去速度有消费端来控制,则就可以控制流量趋于平稳。这样对于结算系统来讲,就达到了削峰填谷的目的。或者说起到了流控的目标

好处五:可恢复性

系统的一部分组件失效时,不会影响到整个系统。MQ降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。

好处六:顺序保证

在大多使用场景下,数据处理的顺序都很重要。大部分MQ本来就是排序的,并且能保证数据会按照特定的顺序来处理。Kafka保证一个Partition内的消息的有序性。

好处七:缓冲

在任何重要的系统中,都会有需要不同的处理时间的元素。例如,加载一张图片比应用过滤器花费更少的时间。消息队列通过一个缓冲层来帮助任务最高效率的执行———写入队列的处理会尽可能的快速。该缓冲有助于控制和优化数据流经过系统的速度。

好处八:异步通信

很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。

对系统而言,MQ消息队列机制能承受更大访问压力;对架构而言,松耦合,系统维护性方便;而对用户而言,想要系统访问更快、系统体验更好,自然首选DMS啦!

相关文章

  • 细数MQ那些不得不说的8大好处

    消息队列(MQ)是目前系统架构中主流方式,在大型系统及大数据中广泛采用。对任何架构或应用来说, MQ都是一个至关重...

  • MQ的使用及QMQ的设计

    1. 为什么要用MQ? MQ带来了什么好处? 带来了什么坏处? 为什么要用MQ?MQ(message queue)...

  • 使用MQ的好处,为什么使用MQ

    1.流量消峰 举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下...

  • 细数养猫的好处

    “妈妈,我想养只猫咪,可以吗?” 听见女儿这样软萌的声音,郑重其事又有点怯怯的说出这几个字,而且是不止一次,就像一...

  • 那些不得不说的故事

    我承认我是一个有故事的人 就像大学时期开始的那场爱恋 一谈就是12年 再长的马拉松也能抵达终点 我也是一个写故事的...

  • 不得不说的那些事

    最近一段时间,接近20天的时间,觉得自己变得很颓废,每天什么事情都不干,除了上班、睡觉、看手机,就没有其他的事情想...

  • 那些不得不说的事

    按照某位抠脚大汉的话来说,那是拥有着明媚的阳光,注定着要有故事的一天... 你端坐在课桌边,时而抖腿,时而脱鞋,...

  • 那些不得不说的典故

    典故用得适当可以收到很好的修辞效果,显得既典雅风趣又含蓄有致,可以使语言更加精练,言简意赅,辞近旨远。运用典故是借...

  • 路上的那些不得不说

    马上就要过年了,又要开始一年一度的抢票大战,也又要开始路上的糟心与开心啦。 首先就是抢票。 每逢过年,春运大战之前...

  • 那些不得不说的死党

    随着时光的流逝才让我们知道,那些朋友会一直一直在一起,无论发生什么事总会惦记着你成为人生的记忆。 一生中能...

网友评论

    本文标题:细数MQ那些不得不说的8大好处

    本文链接:https://www.haomeiwen.com/subject/trrmeftx.html