清除数据
This commit is contained in:
45
README.md
45
README.md
@@ -1,14 +1,11 @@
|
||||
# 社区生鲜团购系统 (FlashSaleSystem)
|
||||
|
||||
退货
|
||||
评价
|
||||
# 社区生鲜团购系统 (CommunityFreshGroupBuySystem)
|
||||
|
||||
基于 Spring Boot + Redis 构建的社区生鲜团购系统
|
||||
|
||||
## 📖 项目概述
|
||||
|
||||
本项目是一个完整的社区生鲜团购系统,采用分布式架构设计,通过 Redis
|
||||
集群实现高并发处理能力。系统支持用户管理、商品管理、购物车功能和秒杀活动,具备防超卖、限流控制、分布式锁等核心技术特性。
|
||||
集群实现高并发处理能力。系统支持用户管理、商品管理、购物车、拼团活动和订单管理,具备防超卖、限流控制、分布式锁等核心技术特性。
|
||||
|
||||
**项目完成度**: 90%
|
||||
|
||||
@@ -34,9 +31,9 @@
|
||||
## 🏗️ 项目结构
|
||||
|
||||
```
|
||||
FlashSaleSystem/
|
||||
CommunityFreshGroupBuySystem/
|
||||
├── src/main/java/com/org/flashsalesystem/
|
||||
│ ├── FlashSaleSystemApplication.java # 启动类
|
||||
│ ├── CommunityFreshGroupBuySystemApplication.java # 启动类
|
||||
│ ├── config/ # 配置类
|
||||
│ │ ├── RedissonConfig.java # Redis集群配置
|
||||
│ │ ├── SwaggerConfig.java # API文档配置
|
||||
@@ -44,7 +41,7 @@ FlashSaleSystem/
|
||||
│ ├── controller/ # 控制器层
|
||||
│ │ ├── AdminController.java # 管理员控制器
|
||||
│ │ ├── CartController.java # 购物车控制器
|
||||
│ │ ├── FlashSaleController.java # 秒杀控制器
|
||||
│ │ ├── FlashSaleController.java # 限时活动控制器
|
||||
│ │ ├── OrderController.java # 订单控制器
|
||||
│ │ ├── PageController.java # 页面控制器
|
||||
│ │ ├── ProductController.java # 商品控制器
|
||||
@@ -52,17 +49,17 @@ FlashSaleSystem/
|
||||
│ │ └── UserController.java # 用户控制器
|
||||
│ ├── dto/ # 数据传输对象
|
||||
│ │ ├── CartDTO.java # 购物车DTO
|
||||
│ │ ├── FlashSaleDTO.java # 秒杀DTO
|
||||
│ │ ├── FlashSaleDTO.java # 限时活动DTO
|
||||
│ │ ├── OrderDTO.java # 订单DTO
|
||||
│ │ ├── ProductDTO.java # 商品DTO
|
||||
│ │ └── UserDTO.java # 用户DTO
|
||||
│ ├── entity/ # 实体类
|
||||
│ │ ├── FlashSale.java # 秒杀实体
|
||||
│ │ ├── FlashSale.java # 限时活动实体
|
||||
│ │ ├── Order.java # 订单实体
|
||||
│ │ ├── Product.java # 商品实体
|
||||
│ │ └── User.java # 用户实体
|
||||
│ ├── repository/ # 数据访问层
|
||||
│ │ ├── FlashSaleRepository.java # 秒杀数据访问
|
||||
│ │ ├── FlashSaleRepository.java # 限时活动数据访问
|
||||
│ │ ├── OrderRepository.java # 订单数据访问
|
||||
│ │ ├── ProductRepository.java # 商品数据访问
|
||||
│ │ └── UserRepository.java # 用户数据访问
|
||||
@@ -70,7 +67,7 @@ FlashSaleSystem/
|
||||
│ │ ├── AdminService.java # 管理员服务
|
||||
│ │ ├── CartService.java # 购物车服务
|
||||
│ │ ├── DistributedLockService.java # 分布式锁服务
|
||||
│ │ ├── FlashSaleService.java # 秒杀服务
|
||||
│ │ ├── FlashSaleService.java # 限时活动服务
|
||||
│ │ ├── MessageListenerService.java # 消息监听服务
|
||||
│ │ ├── OrderService.java # 订单服务
|
||||
│ │ ├── ProductService.java # 商品服务
|
||||
@@ -88,7 +85,7 @@ FlashSaleSystem/
|
||||
│ ├── lua/ # Lua脚本
|
||||
│ │ ├── cart_operation.lua # 购物车操作脚本
|
||||
│ │ ├── distributed_lock.lua # 分布式锁脚本
|
||||
│ │ ├── flashsale.lua # 秒杀脚本
|
||||
│ │ ├── flashsale.lua # 活动脚本
|
||||
│ │ ├── rate_limit.lua # 限流脚本
|
||||
│ │ └── unlock.lua # 解锁脚本
|
||||
│ ├── sql/ # SQL脚本
|
||||
@@ -128,7 +125,7 @@ FlashSaleSystem/
|
||||
- 批量操作支持
|
||||
- 持久化策略
|
||||
|
||||
### 4. 秒杀核心模块
|
||||
### 4. 限时活动核心模块
|
||||
|
||||
- 分布式锁防超卖
|
||||
- Lua 脚本原子操作
|
||||
@@ -154,7 +151,7 @@ FlashSaleSystem/
|
||||
|
||||
### Lua 脚本实现
|
||||
|
||||
- **秒杀脚本**: 原子性库存扣减,防止超卖
|
||||
- **活动脚本**: 原子性库存扣减,防止超卖
|
||||
- **分布式锁脚本**: 原子性设置锁和过期时间
|
||||
- **限流脚本**: 滑动窗口精确限流
|
||||
- **购物车脚本**: 原子性购物车操作
|
||||
@@ -164,7 +161,7 @@ FlashSaleSystem/
|
||||
|
||||
- 订单状态变更通知
|
||||
- 库存变化通知
|
||||
- 秒杀结果通知
|
||||
- 限时活动结果通知
|
||||
- 用户行为监听
|
||||
|
||||
### 性能优化技术
|
||||
@@ -174,19 +171,19 @@ FlashSaleSystem/
|
||||
- 数据预热机制
|
||||
- 连接池优化
|
||||
|
||||
## 🚀 秒杀流程
|
||||
## 🚀 限时活动流程
|
||||
|
||||
1. **库存预热**: 将商品库存加载到 Redis
|
||||
2. **用户请求**: 前端发起秒杀请求
|
||||
2. **用户请求**: 前端发起限时活动请求
|
||||
3. **限流检查**: 检查用户请求频率
|
||||
4. **分布式锁**: 获取商品锁防止并发
|
||||
5. **库存扣减**: Lua 脚本原子性扣减
|
||||
6. **订单创建**: 创建秒杀订单
|
||||
7. **消息通知**: 发布秒杀结果消息
|
||||
6. **订单创建**: 创建限时订单
|
||||
7. **消息通知**: 发布限时活动结果消息
|
||||
|
||||
## 🛡️ 防超卖机制
|
||||
|
||||
- **分布式锁**: 串行化处理秒杀请求
|
||||
- **分布式锁**: 串行化处理限时活动请求
|
||||
- **Lua 脚本**: 原子性检查和扣减库存
|
||||
- **重复检查**: 防止用户重复参与
|
||||
- **数据一致性**: Redis 和数据库双重保障
|
||||
@@ -221,7 +218,7 @@ FlashSaleSystem/
|
||||
|
||||
```bash
|
||||
git clone <repository-url>
|
||||
cd FlashSaleSystem
|
||||
cd CommunityFreshGroupBuySystem
|
||||
```
|
||||
|
||||
2. **配置数据库**
|
||||
@@ -275,7 +272,7 @@ mvn test -Dtest=RedisServiceTest
|
||||
### 压力测试
|
||||
|
||||
- 使用 JMeter 或其他工具进行压力测试
|
||||
- 测试并发秒杀场景
|
||||
- 测试并发限时活动场景
|
||||
- 验证系统性能指标
|
||||
|
||||
## 📈 项目亮点
|
||||
@@ -329,4 +326,4 @@ mvn test -Dtest=RedisServiceTest
|
||||
|
||||
**项目完成时间**: 2025-06-28
|
||||
**总体完成度**: 90%
|
||||
**核心技术**: Redis集群 + Spring Boot + 分布式锁 + Lua脚本
|
||||
**核心技术**: Redis集群 + Spring Boot + 分布式锁 + Lua脚本
|
||||
|
||||
Reference in New Issue
Block a user