- 1,重点复习
- 1.1超卖,减库存,如何下订单
- 2,秒杀项目中如何防刷
- 方案1,在interceptor中防刷
- 方案2:在nginx网关防刷
- 3,项目中缓存是如何做
- 4,框架与架构的区别是什么
秒杀项目中,下订单时就减库存
商城买普通商品,下订单时不减库存,支付时减库存
1,商城有高并发情况,在数据库中减库存,数据库扛不着,在redis中使用lua脚本减库存,先得库存数量,判断库存数量够不够,如果够的话,减库存。使用lua脚本实现了原子性。
2,订单发到消息队列服务器的延迟队列中,订单消息先保存30分钟,30分钟后,订单消息进了延迟队列
3,消息消费者拿到订单信息后,去数据库中查询是否支付,没有支付,回库
2,秒杀项目中如何防刷for() axios.get()
春节,刷火车票
方案1,在interceptor中防刷刷子流量占60%,进入系统内部,可能使用tomcat宕机了
方案2:在nginx网关防刷 3,项目中缓存是如何做缓存是多级,缓存离用户越近,速度越快
1级是浏览器缓存,只能缓存静态资料源
2级是cdn,用户访问的是离他最近的服务器
3级是openresty(nginx) 的进程缓存lru
4级是 openresty 共享字典(共享内存)
5级是redis
js使用staticfile cdn
图片,html使用了七牛cdn
4,框架与架构的区别是什么


