当前位置:   article > 正文

方圆的秒杀系统优化方案实战,(十)Kafka实现异步削峰_kafka削峰案例

kafka削峰案例

1. 写在前头

大家好,我是方圆。这篇到了异步实现削峰,对应代码分支是increae_mq,借助的MQ我选择的是Kafka,没什么道理,只是想学习、应用一下,当然大家自己也可以嵌入自己喜欢的MQ。

它的流程图如下

在这里插入图片描述

用户下单时会先对下单许可进行扣减,扣减成功后,Kafka提交下单任务,之后异步执行下单操作,至于秒杀结果则由用户去订单中查看。

下单许可是对异步下单的一次优化,许可生成的数量是在库存数量的基础上乘以一个比例系数,比如我们的库存量是100,系数为1.5,那么将生成150个下单许可,最多将有150个用户的请求真正的能在异步下单中被处理,它能避免将过多的无效请求全部丢进消息队列中,减少了计算资源浪费。

另外为什么要异步实现削峰,为了应对瞬时的压力,将部分请求写入消息队列,再由具体的下单操作进行处理,整体的处理时间被拉长,异步处理不需要等待消费端的响应,直接返回结果,吞吐量提高,而且也实现了消费者和生产者的解耦。消费端对消息进行消费时,完全以自身的能力为准,避免了应用被压垮。

2. 代码实现

2.1 下单许可的初始化、扣减和恢复

秒杀下单许可的实现与库存缓存的实现十分相

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/895699
推荐阅读
相关标签
  

闽ICP备14008679号