本人开发的新蜂商城增强版,完善了秒杀功能,添加秒杀单超期未支付任务,支持万人秒杀

2021-01-14 14:46:54 +08:00
 wayn111

本项目是在 newbee-mall 项目的基础上改造而来,将 orm 层由 mybatis 替换为 mybatis-plus,添加了秒杀功能、优惠劵功能以及后台搜索功能,喜欢的话麻烦给我个 star

简介

本人之前一直是在传统公司上班,接触的都是政企项目,公司各系统业务繁多数据库表设计复杂,多是业务逻辑庞大使用技术也都不算新,算是 j2ee 时代的遗留产物,鉴于现在 springboot 、微服务、中间件等等风生水起,又因本人对商城系统情有独钟,因此打算先用 springboot 搭建一个商城系统,刚好发现了 newbee-mall 项目,就在此项目的基础上添加了一些自己没有接触过的新功能,一起进步。

系统升级

本次升级主要在原有秒杀功能的基础上进行了完善,秒杀优化如下:

  1. 秒杀页面静态化
  2. 添加了秒杀接口限流,基于 springAOP 实现
  3. 添加了秒杀接口防止重复提交,基于 spring 拦截器实现
  4. 使用 redis-set 数据结构判断用户是否买过秒杀商品
  5. 使用 redis 配合 lua 脚本进行原子自减,判断商品缓存库存是否大于 0
  6. 获取商品缓存,判断秒杀商品是否再有效期内
  7. 执行执行存储过程(减库存 + 记录购买行为)
  8. 使用 redis-set 数据结构记录购买过的用户
  9. 返回用户秒杀成功 VO
  10. 下单后启用秒杀订单 5 分钟未支付超期任务
  11. 订单 5 分钟内为支付则自动取消订单并回退库存

源码

github

在线地址:newebee-mall

分类管理 会员管理
优惠劵管理 商品管理
秒杀管理 订单管理

秒杀专区

秒杀专区为用户展示了后台设置的秒杀商品,在秒杀有效期内可以进行商品秒杀操作. 后台使用了储存过程提高秒杀操作的 tps

优惠劵领取

优惠劵页面为用户展示了后台设置的可用优惠劵,在下单时可以使用优惠卷减少下单金额

商城 15 天交易额统计

商城 15 天交易额统计可以为商城运营人员展示商城近期总交易金额

感谢newbee-mall 项目原作者十三提供的基础项目支持

参考资料

秒杀架构模型设计
Java 高并发秒杀 API (慕课网)
⭐⭐⭐⭐秒杀系统设计与实现.互联网工程师进阶与分析🙋🐓

newbee-mall plus 系列文章

1 、 newbee-mall plus 简介
3870 次点击
所在节点    程序员
24 条回复
darksword21
2021-01-14 16:11:13 +08:00
........ 很好 很有精神
wayn111
2021-01-14 16:16:08 +08:00
@darksword21 谢谢肯定
ArJun
2021-01-14 16:41:00 +08:00
不错
wqgogogo
2021-01-14 16:49:33 +08:00
挺厉害的,这个是真的能支付并抢到商品还是练习用的?
yRebelHero
2021-01-14 17:08:51 +08:00
楼主优秀!向楼主学习!
huntcool001
2021-01-14 17:19:50 +08:00
emm. 压测过吗?
wayn111
2021-01-14 17:45:35 +08:00
@huntcool001 压测过,秒杀接口可以抗一万请求
wayn111
2021-01-14 17:45:42 +08:00
@ArJun 谢谢
wayn111
2021-01-14 17:46:44 +08:00
@wqgogogo 可以抢到,接入了支付宝沙箱支付,微信支付是写死的
muchan92
2021-01-14 17:51:03 +08:00
👍 赞一个 支持
wayn111
2021-01-14 17:54:23 +08:00
@wayn111 需要新注册用户,有用户限制
wayn111
2021-01-14 17:56:04 +08:00
@muchan92 谢谢
fallinlovewith
2021-01-14 17:57:21 +08:00
!!!!!!!
lpts007
2021-01-14 18:02:35 +08:00
不错,喜欢
wayn111
2021-01-14 18:12:57 +08:00
@yRebelHero 一起进步🌝
wysnylc
2021-01-14 19:00:24 +08:00
秒杀,指 redis lua 锁
wayn111
2021-01-14 19:05:38 +08:00
@wysnylc 🌝
Leigg
2021-01-14 19:12:12 +08:00
给了哈
wfd0807
2021-01-14 19:13:16 +08:00
能解释一下为什么用 mybatis plus 吗?在我看来 mybatis plus 是一个不伦不类的东西,而且一堆 bug
iConnect
2021-01-14 19:15:20 +08:00
移动版没做?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744905

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX