美文网首页
MQ实战-削峰填谷

MQ实战-削峰填谷

作者: 匆匆岁月 | 来源:发表于2019-07-15 14:24 被阅读0次

对于突然到来的大量请求,您可以配置流控规则,以稳定的速度逐步处理这些请求,起到“削峰填谷”的效果,从而避免流量突刺造成系统负载过高。

场景

请求的到来,往往是没有规律的。

例如,某应用的处理能力是每秒 10 个请求。在某一秒,突然到来了 30 个请求,而接下来两秒,都没有请求到达。在这种情况下,如果直接拒绝 20 个请求,应用在接下来的两秒就会空闲。所以,需要把请求突刺均摊到一段时间内,让系统负载保持在请求处理水位之内,同时尽可能地处理更多请求,从而起到“削峰填谷”的效果。

image.png
上图中,红色的部分代表超出消息处理能力的部分。观察得出,消息突刺往往都是瞬时的、不规律的,其后一段时间系统往往都会有空闲资源。把红色的那部分消息平摊到后面空闲时去处理,这样既可以保证系统负载处在一个稳定的水位,又可以尽可能地处理更多消息。通过配置流控规则,可以达到消息匀速处理的效果。

分析问答

1. 问:站点与服务,服务与服务上下游之间,一般如何通讯?

答:有两种常见的方式
一种是“直接调用”,通过RPC框架,上游直接调用下游:


还有一种,在某些业务场景之下,可以采用“MQ推送”,上游将消息发给MQ,MQ将消息推送给下游。


2. 问:以上两种为什么为有流量冲击?

答:不管采用“直接调用” 还是 “MQ推送”,都有一个很大的缺点,下游消息接收方无法控制到达自己的流量,如果调用方不断的调用且不限速,很有可能把下游服务压垮。

  • 举个例子: 秒杀业务
    上游发起高并发的下单请求。
    下游完成秒杀业务逻辑(库存检查 - 库存冻结 - 余额检查 - 余额冻结 - 订单完成 - 余额扣减 - 库存扣减 - 生成流水 - 余额解冻 - 库存解冻)。
    上游下单业务简单,每秒发起10000+个请求,下游秒杀业务复杂,每秒只能处理2000+个请求,很有可能上游不限速的下单,导致下游系统被压垮,引起雪崩。

3. 问:MQ怎么改能缓冲流量?
答:由MQ-server 推(push)模式,改为 MQ-client(pull)为拉模式

MQ-client根据自己的处理能力,每隔一定时间,或者每次拉取若干条消息,实施流控,达到保护自身的效果。并且这是MQ提供的通用功能,无需上下游修改代码。

4. 问:如果上游发送流量过大,MQ提供拉模式确实可以起到下游自我保护的作用,会不会导致消息在MQ中堆积?
答:下游MQ-client拉取消息,消息接收方能够批量获取消息,需要下游消息接收方进行优化,方能够提升整体吞吐量,例如:批量写。

结论

  • MQ-client提供拉模式,定时或者批量拉取,可以起到削平流量,下游自我保护的作用(MQ需要做的)
  • 要想提升整体吞吐量,需要下游优化,例如批量处理等方式(消息接收方需要做的)

相关文章

  • MQ实战-削峰填谷

    对于突然到来的大量请求,您可以配置流控规则,以稳定的速度逐步处理这些请求,起到“削峰填谷”的效果,从而避免流量突刺...

  • MQ之削峰填谷

    MQ,如何做到削峰填谷 - babylovewei的博客 - CSDN博客

  • 高并发

    读多写少用缓存写多读少用缓冲(mq)。mq针对大量写入,保护应用,应对高并发秒杀:mq削峰填谷,接口限流。请求合并...

  • kafka优化笔记

    1 mq的作用 解耦、异步、削峰填谷 2 kafka架构 1)Producer :消息生产者,就是向 kafka ...

  • RocketMQ学习第一天

    一、MQ介绍 MQ的优势: 1、业务解耦(降低耦合度)2、异步提速(降低同步请求的时间)3、削峰填谷(峰值降低,平...

  • MQ夺命连环11问

    一、你们为什么使用mq?具体的使用场景是什么? mq的作用很简单,削峰填谷。以电商交易下单的场景来说,正向交易的过...

  • 通过源码告诉你,阿里的RocketMQ事务消息到底牛逼在哪

    “得益于MQ削峰填谷,系统解耦,操作异步等功能特性,在互联网行业,可以说有分布式服务的地方,MQ都往往不会缺席。”...

  • vivo鲁班RocketMQ平台的消息灰度方案

    一、方案背景 RocketMQ(以下简称MQ)作为消息中间件在事务管理,异步解耦,削峰填谷,数据同步等应用场景中有...

  • RabbitMQ 高可用优化

    RabbitMQ的主要作用基本上可以用8个字概括,削峰填谷异步解耦。但是引入MQ我们也不得不考虑引入MQ后带来的一...

  • 一定让你看懂的RocketMQ事务消息源码分析

    前言 得益于MQ削峰填谷,系统解耦,操作异步等功能特性,在互联网行业,可以说有分布式服务的地方,MQ都往往不会缺席...

网友评论

      本文标题:MQ实战-削峰填谷

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