一个简单小巧的秒杀系统架构
条评论项目背景
一套抽奖+秒杀的系统。 系统设定可支持百万级别的QPS访问, 由于涉及到高QPS压力,防超卖、防超买,事务处理等多个问题, 查了好多网上的资料,最终完成了一个简单的秒杀系统; 虽然最终活动的QPS并没有打到预想的级别(十万级), 整个服务的稳定性和可用性也没有收到太多的考验,不过这里还是简要记录一下这次秒杀系统的设计。
难点与解决方案
- 峰值QPS抗压:Kafka队列削峰,前端退避重试
- 防超买、超卖(库存锁):Mysql行锁,保证数据更新原子性和可见性
- 公平性保证:目前未解决,采用先到先得(后续考虑设计一套动态调整算法)
- 存储热点避免:数据分桶(mysql一表多行 + mysql分表)
- 分布式一致性:在线同步 + 在线重试 + 离线重试 (无法做到银行系统那样2pc)
系统框架
- 本文链接:http://www.keeptry.cn/2017/08/27/2017816活动简记/
- 版权声明:chuang keeptry-blog
分享