秒杀抢购系统设计的核心要素。
高并发、响应快、高吞吐量
指标QPS、TPS、响应时间
需要从分布式方案、程序设计等方面考虑。
分布式方案要关注系统瓶颈,用redis代替关系数据库来存储依赖信息,避免跨机房网络请求,使用MQ实现数据库操作异步化
如何保证库存的原子操作
通过 redis->incrby(‘product’, -1) 得到递减之后的库存数。
防刷单
研究算法分析请求尽可能拦截。
DeviceId,IP,UserAgent,Refer,会员ID等参数
语言选择
go、ngx_lua 在高并发和性能方面会更有优势
如何限流
方法及限流 AtomicInteger