Skip to content

秒杀

一、在阅读 csdn 用太极拳讲分布式理论,真舒服! 时,其中提及了

1、流量削峰:比如多个秒杀场次,某东的 8 点秒杀场,12 点的秒杀场。

二、分层过滤就是拦截请求

三、参考文章

1、csdn 彻底搞懂缓存穿透,缓存击穿,缓存雪崩

2、zhihu 秒杀之流量削峰

3、jianshu 高并发架构系列:什么是流量削峰?如何解决秒杀业务的削峰场景

zhihu 秒杀之流量削峰

流量削峰的一些常用操作思路

img

jianshu 高并发架构系列:什么是流量削峰?如何解决秒杀业务的削峰场景

流量削峰的由来

怎样来实现流量削峰方案

削峰从本质上来说就是更多地延缓用户请求,以及层层过滤用户的访问需求,遵从“最后落地到数据库的请求数要尽量少”的原则。

1.消息队列解决削峰

要对流量进行削峰,最容易想到的解决方案就是用消息队列来缓冲瞬时流量,把同步的直接调用转换成异步的间接推送,中间通过一个队列在一端承接瞬时的流量洪峰,在另一端平滑地将消息推送出去。

消息队列中间件主要解决应用耦合,异步消息, 流量削锋等问题。常用消息队列系统:目前在生产环境,使用较多的消息队列有 ActiveMQ、RabbitMQ、 ZeroMQ、Kafka、MetaMQ、RocketMQ 等。

在这里,消息队列就像“水库”一样,拦蓄上游的洪水,削减进入下游河道的洪峰流量,从而达到减免洪水灾害的目的。

2.流量削峰漏斗:层层削峰

针对秒杀场景还有一种方法,就是对请求进行分层过滤,从而过滤掉一些无效的请求。

分层过滤其实就是采用“漏斗”式设计来处理请求的,如下图所示:

img

这样就像漏斗一样,尽量把数据量和请求量一层一层地过滤和减少了。