# 秒杀项目 **Repository Path**: gitee_code/seckill ## Basic Information - **Project Name**: 秒杀项目 - **Description**: 秒杀小demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-15 - **Last Updated**: 2021-03-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工程简介 # 延伸阅读 ## 开发步骤 秒杀项目 #### 设计 1. 搭建项目 2. 分布式Session > - 分布式会话:用户登陆、共享Session 3. 实现秒杀功能 > - 商品列表 > - 商品详情 > - 秒杀 > - 订单详情 4. 压力测试 Bug 测试 5. 页面优化 > - Redis 缓存 > - 静态分离 6. 服务优化 > 消息队列RocketMQ > > 接口优化 > > 分布式锁 7. 接口安全 > - 接口、IP、用户 限流 > - 验证码 > - 隐藏秒杀地址 秒杀主要解决两个问题,并发读,并发写。 快准稳; **更新数据一定要删除缓存更新** #### 需求分析: 1. 用户登陆保存用户信息 cookie + sesson 储存key Redis 中储存值 2. 用户进入商品详情界面进行商品购买 限制一个用户购买一件商品 / 异多件 3. 商品限制秒杀时限 4. Redis 分布式锁防止超卖 ,缓存保证高QBS ,消息队列优化事件处理 5. ### 实现 优化1 : 秒杀基本实现 缓存储存商品信息 订单信息 秒杀锁Redisson 实现多商品秒杀 但商品限制秒杀 ``` http://localhost:8080/OrderDetail.html?orderId= ``` 优化版本2 : 实现消息队列今后后续复杂事件的实现 优化流程: 1. 判断是否限制购买 限制条件 2. 后续业务进行锁定库存操作 保留限制时间 - ​ 支付则库存减少 生成订单 - 不支付则库存回滚 释放库存 并发优化: 1. 将库存数据同步到Redis (保证数据一致性 )减少数据库访问 2. RocketMQ 处理复杂事务 > 1. 接收到订单 存到消息队列 > 2. 数据库减库存操作 > 3. 查找状态订单表 如果失败则回复库存 优化版本3 :网关