码迷,mamicode.com
首页 > 其他好文 > 详细

秒杀系统

时间:2019-03-11 23:43:54      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:失败   过度设计   get   实现   目标   process   序号   插入   线程池   

学习目标

  • 秒杀原理
  • 性能测试
  • 性能分析

系统目标

  • 性能优秀
  • 能经受住高并发
  • 不会超卖

框架

  • Spring
  • Redis
  • 线程池

思路

lpush N 个需要秒杀商品的序号
lpop 取序号,取不出来则秒杀失败
之后异步存入数据库

一些错误

过度设计

想设计一个秒杀操作可以有不同实现的父类,发现没有必要,我能想到就这一个方案。

秒杀工厂 UML
技术图片

用 Redis 事务控制秒杀数量

思路是这样,开始事务控制,先 get 数量,后 decrease 之,后提交。
这是错误的。事务只能控制插入是正确的,会读取到脏值。

秒杀系统

标签:失败   过度设计   get   实现   目标   process   序号   插入   线程池   

原文地址:https://www.cnblogs.com/Piers/p/10444500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!