商品库存秒杀方案总结
库存秒杀方案,怎么样能支撑瞬间的高并发的流量。结合网上的文章自己做了个总结。
1.解决思路,漏斗原理通过层层过滤来过滤掉无效的请求(比如重复请求)等等,具体怎么过滤呢主要有限流、削峰、缓存等手段来实现。
限流:通过滑动窗口、漏桶算法来控制请求数,Google开源工具包Guava提供了限流工具类RateLimiter 令牌桶算法来限流,如果是集群的话可以使用redis
作为计数次来判断,根据用户id和接口拼接成key 并设置过期时间,利用redis incr 来计数来限流。
削峰:通过异步、MQ 方式来承载瞬时并发
缓存:提高响应时间
2.针对库存秒杀场景我们看下整个请求过程
具体Demo 项目地址:https://github.com/chenzhe/RedisLockStockDemo
在这个Demo项目中使用了kafka做消息队列同步双写,Redis做为缓存,使用了Redisson 分布锁来控制并发库存操作。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步