解决方案

硬件:提高系统配置、增加机械

软件:架构设计优化

秒杀面临的问题

高并发

时间极短,瞬间用户量大,大量请求进来,会造成缓存雪崩、缓存击穿等,造成数据库崩溃

超卖


恶意请求

黑客、黄牛,搞几十台机械,写脚本,模拟用户去请求

链接暴露

通过F12的控制面板,获取到秒杀的链接,这样置灰功能就失效了,秒杀被提前了

设计漫谈

根据单一职责的思想,搭建一个秒杀服务。

秒杀链接加盐,动态URL,通过MD5加密算法加密随机的字符串去做url,然后通过前端代码获取url后台校验才能通过

redis集群,单机扛不住,用集群,配置主从同步,读写分离、哨兵等,并开启持久化

nginx

负载均衡,分布式架构,后端部署多节点

恶意请求拦截

资源静态化:用cdn加速

按钮控制:秒杀前置灰,到点后可点击,点击一次后置灰

后端限流降级

库存预热:将库存放入到redis缓存中

分布式锁

redis事务:多行命令一起执行的

削峰填谷:mq异步去扣减库存