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

答:有两种常见的方式

一种是“直接调用”,通过RPC框架,上游直接调用下游。

在某些业务场景之下(具体哪些业务场景,见《到底什么时候该使用MQ?》),可以采用“MQ推送”,上游将消息发给MQ,MQ将消息推送给下游。

问:为什么会有流量冲击?

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

举个栗子,秒杀业务:

上游发起下单操作

下游完成秒杀业务逻辑(库存检查,库存冻结,余额检查,余额冻结,订单生成,余额扣减,库存扣减,生成流水,余额解冻,库存解冻)

上游下单业务简单,每秒发起了10000个请求,下游秒杀业务复杂,每秒只能处理2000个请求,很有可能上游不限速的下单,导致下游系统被压垮,引发雪崩。

为了避免雪崩,常见的优化方案有两种:

1)业务上游队列缓冲,限速发送

2)业务下游队列缓冲,限速执行

不管哪种方案,都会引入业务的复杂性,有“缓冲流量”需求的系统都需要加入类似的机制(具体怎么保证消息可达,见《消息总线能否实现消息必达?》),正所谓“通用痛点统一解决”,需要一个通用的机制解决这个问题。

问:如何缓冲流量?

答:明明中间有了MQ,并且MQ有消息落地的机制,为何不能利用MQ来做缓冲呢?显然是可以的。

问:MQ怎么改能缓冲流量?

答:由MQ-server推模式,升级为MQ-client拉模式。

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

问:如果上游发送流量过大,MQ提供拉模式确实可以起到下游自我保护的作用,会不会导致消息在MQ中堆积?

答:下游MQ-client拉取消息,消息接收方能够批量获取消息,需要下游消息接收方进行优化,方能够提升整体吞吐量,例如:批量写。

结论

1)MQ-client提供拉模式,定时或者批量拉取,可以起到削平流量,下游自我保护的作用(MQ需要做的)

2)要想提升整体吞吐量,需要下游优化,例如批量处理等方式(消息接收方需要做的)
————————————————
版权声明:本文为CSDN博主「Stars永恒」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011676417/article/details/70168194

MQ如何快速实现流量削峰填谷相关推荐

  1. 高可用服务 AHAS 在消息队列 MQ 削峰填谷场景下的应用...

    在消息队列中,当消费者去消费消息的时候,无论是通过 pull 的方式还是 push 的方式,都可能会出现大批量的消息突刺.如果此时要处理所有消息,很可能会导致系统负载过高,影响稳定性.但其实可能后面几 ...

  2. 高并发系统设计:消息队列的三大作用:削峰填谷、异步处理、模块解耦

    削去秒杀场景下的峰值写流量 而在秒杀场景下,高并发的写请求并不是持续的,也不是经常发生的,而只有在秒杀活动开始后的几秒或者十几秒时间内才会存在.为了应对这十几秒的瞬间写高峰,将秒杀请求暂存在消息队列中 ...

  3. Java曲线之削峰填谷,Sentinel匀速模式(削峰填谷)

    一.什么是削峰填谷: 某瞬时来了大流量的请求, 而如果此时要处理所有请求,很可能会导致系统负载过高,影响稳定性.但其实可能后面几秒之内都没有消息投递,若直接把多余的消息丢掉则没有充分利用系统处理消息的 ...

  4. 数据中心水蓄冷削峰填谷的经济性分析

    摘要 结合国内三大城市的全年气象参数及大型数据中心常用的空调系统,分析数据中心在常用工况下,采用水蓄冷进行削峰填谷的经济性,并指出了大型数据中心采用削峰填谷措施具有良好的经济性. 关键词 :削峰填谷 ...

  5. 面向削峰填谷的电动汽车多目标优化调度策略——附代码

    目录 摘要: 背景介绍: 考虑V2G的电动汽车充放电模型(无非凸约束) 基于负荷实时变化的分时电价模型 充放电优化调度目标函数 (1)综合负荷成本以及电动汽车电池退化损耗成本 (2)综合负荷峰谷差和波 ...

  6. 面向削峰填谷的电动汽车多目标优化调度策略 代码主要实现了考虑电动汽车参与削峰填谷的场景下,电动汽车充放电策略的优化,是一个多目标优化

    MATLAB代码:面向削峰填谷的电动汽车多目标优化调度策略 关键词:电动汽车 削峰填谷 多目标 充放电优化 仿真平台:MATLAB YALMIP+CPLEX 主要内容:代码主要实现了考虑电动汽车参与削 ...

  7. 负荷需求响应模型matlab 通过分时电价方式下的负荷需求响应模型得到负荷响应前后变化情况,可以看到明显呈现削峰填谷的作用

    负荷需求响应模型matlab 通过分时电价方式下的负荷需求响应模型得到负荷响应前后变化情况,可以看到明显呈现削峰填谷的作用 YID:6148641310561088爱熬夜的程序猿

  8. 考虑储能削峰填谷的含DG配电网可靠性评估

    考虑储能削峰填谷的含DG配电网可靠性评估. 1.基于序贯蒙特卡洛的配电网可靠性评估: 2.基于序贯蒙特卡洛的含DG配电网可靠性评估: 3.基于区间迭代法优化储能出力进行削峰填谷: 4.基于上述内容进一 ...

  9. 充电站储能削峰填谷方案设计测算报告

    1.背景 近年来,为推进我国储能技术朝着商业化应用发展,国家出台了多项政策.从现有政策解读可知,虽然国家鼓励在用户侧建设分布式储能系统,但暂未出台针对用户侧电池储能的充放电标杆电价.容量补贴细则.充放 ...

  10. 设计一个秒杀系统之削峰填谷

    为什么需要削峰? 如果你看过秒杀系统的流量监控图的话,你会发现它是一条直线,就在秒杀开始那一秒是一条很 直很直的线,这是因为秒杀请求在时间上高度集中于某一特定的时间点.这样一来,就会导致一 个特别高的 ...

最新文章

  1. Linux开机详细流程
  2. Java 线程池艺术探索
  3. 全球及中国智能交通行业应用方向分析及创新发展战略报告2021版
  4. 卷积神经网络之 - Lenet
  5. 关于 SpringCloud 配置,你了解多少?
  6. 字符串定义操作(C语言)
  7. HDU2501 Tiling_easy version【递推+打表】
  8. 三菱mode bus tcp通讯_邢台三菱MR-J4-200B4
  9. 自动生成html_python自动化测试中pytest的使用
  10. 一篇 CPU 占用高,导致请求超时的故障排查
  11. 13.2 处理静态资源【从零开始学Spring Boot】
  12. 【2019杭电多校第八场1011=HDU6667】Roundgod and Milk Tea(贪心)
  13. Java权限管理系统之数据库设计(一)
  14. 铁塔基站三相有功电能无线计量仪表外置互感器-安科瑞 顾月
  15. 计算机主板 华硕 游戏用,华硕Z390-A大师主板,带你畅享极致游戏体验-华硕主板bios设置...
  16. 路由器 接 交换机 接 路由器
  17. wifidog认证php,ddwrt+wifidog搭建热点认证系统(无线路由器web认证)
  18. 第一次将所学的指针和递归结合在一起
  19. 钟汉良日记:百善孝为先,其它都靠边
  20. LayUI时间线优化

热门文章

  1. 视频播放(iOS开发)
  2. C77 - 不完全扫雷[不定期更新,全凭心情]
  3. Greedy search 和 beam search
  4. MySQL~高级应用 + 优化。
  5. (VCIP-2018)基于选择性卷积特征的广义均值池化细粒度图像检索
  6. 【译】 on the expressive power of deep architectures
  7. eclipse插件SonarLint点击deactivate rule后恢复
  8. java人机猜拳模块流程图_基于java实现人机猜拳游戏
  9. [translate]Multimodal Self-Paced Learning for Multi-Omics Feature Selection and Data Integration
  10. 十年磨一剑,今日把示君:架构师分享从一名码农到如今的成长经验