文章目录
今天我们从几个不同的维度,讲讲秒杀系统的架构设计,主要知识点如下:
- Nginx + 前后端分离 + CDN 缓存 + 网关(限流+熔断)
- 集群的路由层 + Redis(缓存热点数据、分布式锁)
- MQ 集群
- 业务处理层
- 数据库层(读写分离、热点隔离)
1. 秒杀业务的特点
- 瞬间大量的刷新页面的操作
- 瞬间大量的抢宝的操作
- 可能有秒杀器的恶性竞争
2. 总体思路
2.1 削峰限流
- 前端+Redis拦截,只有redis扣减成功的请求才能进入到下游
- MQ堆积订单,保护订单处理层的负载,Consumer根据自己的消费能力来取Task,实际上下游的压力就可控了。重点做好路由层和MQ的安全
- 引入答题验证码、请求的随机休眠等措施,削峰填谷