秒杀系统设计
秒杀系统特点
- 时间极短、 瞬间用户量大。
秒杀系统需要新建一个项目+数据库来搞?
是的
- 秉着"单一职责"的原则,还是需要另外搞一套系统来做秒杀系统
- 另外就是,秒杀系统出问题的几率还是比较大的,如果影响到正常的商城系统,那就得杀个程序员祭天了
- 但是一些流量不大的微服务还是可以调用的,例如商品详情微服务
恶意请求(脚本+黄牛疯狂提交)
秒杀链接加盐
- 高防cdn看能不能对请求进行过滤
- URL动态化
流量特别高
从整个网络链路的开始就对流量进行限制
- 前端限流
一般秒杀不会让你一直点的,一般都是点击一下或者两下然后几秒之后才可以继续点击 - 静态资源放在cdn服务器
- 恶意请求拦截
- 可以用nginx做
- 后端限流
- 限流&降级&熔断&隔离
- sentinel,hystrix
- 利用mq削峰填谷
- 库存预热
- 就是把数据放到redis中去
- redis集群
- 读写分离:这个时候就需要用lua脚本进行写操作,因为读的数据不一定正确,必须保证库存>0
超卖
- redis+lua脚本进行扣库存操作.
数据库崩溃
- 需要层层削峰,库存扣除在redis做
作者:cgengwei
出处:https://www.cnblogs.com/cgengwei/p/16327775.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!