秒杀系统如何削峰?
首先,秒杀系统的特点是在秒杀时长内流量会以近乎线性的速度激增,激增的后果是瞬间消耗资源过大,会导致系统崩溃甚至服务器宕机。
异步队列:通过异步队列的缓冲区以相对温和的方式消耗和处理流量。这里需要注意的是,要保证无损,必须结合分布式系统中的最终一致性原则,必须处理请求。这种方式的缺点是,如果异步队列承受不了,最终会崩溃。而大部分用户相应的等待时间也会变长。
扩容:服务器或应用程序的扩容,以提高系统的并发处理能力。
类验证码机制:通过过滤作弊或非法类请求,延迟请求实现削峰。
多级缓存:使用多级缓存(CDN、Redis等。)形成类似的缓存漏斗,逐渐减少流量,最终达到源站接收请求量的目的。
保险丝电流限制
如果应用是单一应用,可以考虑改造成分布式系统,这样更容易横向扩展,达到分流削峰的目的。