秒杀场景
- 常用概念
响应时间(RT) 响应时间是指系统对请求作出响应的时间。
吞吐量(Throughput) 吞吐量是指系统在单位时间内处理请求的数量。
并发用户数 并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。
QPS(Query Per Second) 每秒查询率。 - 基础知识
单机8C8G的机器可以达到1000左右的QPS。
方案设计:前端
页面静态化:将活动页面上的所有可以静态的元素全部静态化,并尽量减少动态元素。通过CDN来抗峰值。
用户限流:在某一时间段内只允许用户提交一次请求,比如可以采取IP限流。 - 方案设计:后端
采用消息队列缓存请求(削峰):既然服务层知道库存只有100台手机,那完全没有必要把100W个请求都传递到数据库啊,那么可以先把这些请求都写到消息队列缓存一下,数据库层订阅消息减库存,减库存成功的请求返回秒杀成功,失败的返回秒杀结束。
利用缓存应对读请求:对类似于12306等购票业务,是典型的读多写少业务,大部分请求是查询请求,所以可以利用缓存分担数据库压力。