File tree Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Expand file tree Collapse file tree 2 files changed +8
-6
lines changed Original file line number Diff line number Diff line change 1+ .idea
Original file line number Diff line number Diff line change 44
55## 架构
66* 前端模块(页面静态化、CDN、客户端缓存)
7- * 排队模块(队列实现 )
8- * 服务模块(redis页面缓存、对象缓存、业务逻辑 )
9- * 防刷模块(验证码、限流 )
7+ * 排队模块(Redis、队列实现异步下单 )
8+ * 服务模块(事务处理业务逻辑、避免并发问题 )
9+ * 防刷模块(验证码、限IP )
1010
1111## 模块解析
1212按功能来分会有以下几个模块
17173 . 静态资源优化,CSS/JS/图片压缩,提升用户体验
1818
1919### 排队模块
20- 1 . 提供用户轮询查询功能,将热点对象保存在Redis中
21- 2 . 在Redis中预减库存,随后发送消息给RabbitMQ,每个商品对应一个队列保证排队顺序,使用队列是为了降低到达服务器的瞬时流量
20+ 1 . 对Redis中的抢购对象预减库存,立即返回排队中,随后立即发送消息给RabbitMQ,这样大大降低到达服务器的瞬时流量
21+ 2 . 提供用户查询实时抢购状态功能,将抢购对象保存在Redis中来提供
2222
2323### 服务模块
24- 1 . 业务逻辑,使用事务控制下订单,减库存操作
24+ 1 . RabbitMQ的消费逻辑、业务逻辑,使用事务控制下订单,减库存操作
25+ 2 . 避免同一用户同时下多个订单,在订单表中加上用户ID与商品ID的唯一索引;避免卖超问题,在更新数量的sql上需要加上>0条件
2526
2627### 防刷模块
27281 . 针对恶意用户写脚本去刷,在Redis中保存用户IP与商品ID进行限制
You can’t perform that action at this time.
0 commit comments