Java秒杀系统设计
发表于|更新于|技术博客
|总字数:347|阅读时长:1分钟|浏览量:
Url动态化
个人理解:
- 前端调用下单接口之前先调用一个获取md5的接口
- 未到秒杀时间开始不得响应
- 接口不得重复提交,一个唯一标识的用户只能指定时间获取一次
- 调用下单接口url地址pathValue拼接当前md5实现调用接口地址动态化
目的:
防止秒杀活动开始前,下单地址被提前获取进而造成利用脚本刷单情况发生。
前端资源静态化
CDN这种对前端资源缓存,加速访问
前端按钮控制
- 默认置灰,不可按。调用时候调用接口查询北京时间然后开启
- 时间到了,也可以延时1秒左右按钮正常可点击
Redis
- 可以使用Redis集群
- 使用lua脚本实现redis的cas操作,避免redis库存更新在并发情况出现问题
数据库乐观锁提高效率
示例语句
update table set count = count -1,version = version +1 where goodsid=1 and count > 0 and version = xxx |
悲观锁
- for update 行锁
- 储存过程
MQ进行消费
通过MQ对秒杀订单进行处理消费
文章作者: MUMU
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 blog.wo0ow.com!