商品库存秒杀方案总结

库存秒杀方案,怎么样能支撑瞬间的高并发的流量。结合网上的文章自己做了个总结。

1.解决思路,漏斗原理通过层层过滤来过滤掉无效的请求(比如重复请求)等等,具体怎么过滤呢主要有限流、削峰、缓存等手段来实现。

限流:通过滑动窗口、漏桶算法来控制请求数,Google开源工具包Guava提供了限流工具类RateLimiter 令牌桶算法来限流,如果是集群的话可以使用redis

           作为计数次来判断,根据用户id和接口拼接成key 并设置过期时间,利用redis incr 来计数来限流。

削峰:通过异步、MQ 方式来承载瞬时并发

缓存:提高响应时间

2.针对库存秒杀场景我们看下整个请求过程

具体Demo 项目地址:https://github.com/chenzhe/RedisLockStockDemo

在这个Demo项目中使用了kafka做消息队列同步双写,Redis做为缓存,使用了Redisson 分布锁来控制并发库存操作。

原文地址:https://www.cnblogs.com/chenzhe/p/12486689.html