秒杀(高并发)方法论

1.服务单一职责+独立部署:由于秒杀系统需要承受大量的并发压力,我们应该注意即使秒杀系统挂掉了也不要影响别的系统

2.秒杀链接的加密:如果直接暴露秒杀接口的话,可能出现提前抢购的情况,我们可以到点了再把一个随机码发送给浏览器,浏览器访问时需要带上这个随机码

3.库存预热+快速扣减:我们不能让大量的请求直接进入数据库,可以使用redis缓存,直接在redis中扣除库存

4.动静分离:本来并发量已经够高了,如果静态资源也需要访问服务器的话无疑会增加并发量,我们可以使用Nginx动静分离,静态资源交给nginx缓存,动态请求才放给服务器

5.恶意请求拦截:防止脚本请求,应该在网关层就完成过滤,不能交给服务器判断

6.流量错峰:我们可以使用各种手段进行流量错峰,比如需要先加入购物车,需要输入验证码

7.限流&熔断&降级:前端限流+后端限流(可以使用分布式锁中的信号量),快速失败降级运行,熔断隔离防止雪崩

8.队列削峰:可以使用rabbitmq等消息队列,一旦抢购成功,交由消息队列,慢慢生成订单

posted @ 2021-05-07 14:21  刚刚好。  阅读(138)  评论(0)    收藏  举报