清除数据

This commit is contained in:
2026-05-06 23:30:54 +08:00
parent 17a5734d67
commit d16fc36264
149 changed files with 6691 additions and 5575 deletions

View File

@@ -4,7 +4,8 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## 项目概述
FlashSaleSystem 是一个基于 Spring Boot 2.7.6 和 Redis 集群构建的社区生鲜团购系统。系统采用分布式架构设计,通过 Redis 集群实现高并发处理,使用 Lua 脚本保证原子性操作,采用分布式锁防止超卖。
CommunityFreshGroupBuySystem 是一个基于 Spring Boot 2.7.6 和 Redis 集群构建的社区生鲜团购系统。系统采用分布式架构设计,通过
Redis 集群实现高并发处理,使用 Lua 脚本保证原子性操作,采用分布式锁防止超卖。
## 核心架构
@@ -54,8 +55,8 @@ mvn spring-boot:run -Dspring.profiles.active=dev # 开发环境
mvn spring-boot:run -Dspring.profiles.active=cluster # 集群环境
# 运行JAR包
java -jar target/FlashSaleSystem-0.0.1-SNAPSHOT.jar
java -jar target/FlashSaleSystem-0.0.1-SNAPSHOT.jar --spring.profiles.active=cluster
java -jar target/CommunityFreshGroupBuySystem-0.0.1-SNAPSHOT.jar
java -jar target/CommunityFreshGroupBuySystem-0.0.1-SNAPSHOT.jar --spring.profiles.active=cluster
```
### 数据库初始化
@@ -84,13 +85,14 @@ mysql -u root -p flash_sale_db < src/main/resources/sql/test-data.sql
- **String**: 分布式锁、会话存储、库存计数
- **Hash**: 用户信息、商品信息、购物车数据
- **List**: 订单队列、消息队列
- **Set**: 秒杀成功用户集合
- **Set**: 限时活动成功用户集合
- **ZSet**: 商品排行榜、热门活动
### Key前缀规范
- `flashsale:` - 秒杀活动数据
- `flashsale:` - 限时活动数据
- `flashsale_stock:` - 实时库存信息
- `flashsale_lock:` - 秒杀分布式锁
- `flashsale_lock:` - 限时活动分布式锁
- `flashsale_success:` - 成功用户集合
- `user:` - 用户信息缓存
- `product:` - 商品信息缓存
@@ -106,16 +108,17 @@ mysql -u root -p flash_sale_db < src/main/resources/sql/test-data.sql
## 核心业务流程
### 秒杀流程
### 限时活动流程
1. **库存预热**: 活动前30分钟通过 `FlashSaleService.preloadStock()` 预加载库存到Redis
2. **限流检查**: `RateLimitService.checkFlashSaleRateLimit()` 检查用户请求频率10次/分钟)
3. **分布式锁**: `RedissonLockService.tryLock()` 获取分布式锁,防止并发超卖
4. **库存扣减**: 执行 `flashsale.lua` 脚本原子性扣减库存
5. **订单创建**: 数据库创建订单Redis记录成功用户
6. **消息发布**: 通过Pub/Sub发布秒杀结果通知
6. **消息发布**: 通过Pub/Sub发布限时活动结果通知
### 关键服务类
- **FlashSaleService**: 秒杀核心逻辑包含库存预热、分布式锁、Lua脚本执行
- **FlashSaleService**: 限时活动核心逻辑包含库存预热、分布式锁、Lua脚本执行
- **RedisService**: Redis基础操作封装支持各种数据类型和TTL设置
- **RedissonLockService**: Redisson分布式锁实现支持自动续期
- **RateLimitService**: 基于Redis的滑动窗口限流
@@ -135,7 +138,7 @@ mysql -u root -p flash_sale_db < src/main/resources/sql/test-data.sql
spring.redis.host: localhost # 单节点配置
spring.redis.cluster.nodes: ... # 集群配置(取消注释启用)
# 秒杀业务配置
# 限时活动业务配置
flashsale.seckill.rate-limit.max-requests-per-minute: 10 # 限流
flashsale.seckill.max-quantity-per-user: 1 # 每人限购
flashsale.seckill.stock-preload.advance-minutes: 30 # 预热时间
@@ -143,7 +146,7 @@ flashsale.seckill.stock-preload.advance-minutes: 30 # 预热时间
# 缓存过期时间
flashsale.cache.user-expire-minutes: 30 # 用户信息
flashsale.cache.product-expire-minutes: 60 # 商品信息
flashsale.cache.flashsale-expire-minutes: 10 # 秒杀活动
flashsale.cache.flashsale-expire-minutes: 10 # 限时活动
```
## 性能优化策略
@@ -163,7 +166,8 @@ flashsale.cache.flashsale-expire-minutes: 10 # 秒杀活动
- **Prometheus监控**: http://localhost:8080/actuator/prometheus
### 日志配置
- **日志文件**: logs/flash-sale-system.log
- **日志文件**: logs/community-fresh-group-buy-system.log
- **日志级别**: DEBUG (com.org.flashsalesystem, Redis, SQL)
## 测试策略
@@ -175,7 +179,7 @@ flashsale.cache.flashsale-expire-minutes: 10 # 秒杀活动
### 性能测试
- 推荐工具: JMeter, Gatling
- 测试场景: 高并发秒杀、库存扣减准确性、分布式锁效果
- 测试场景: 高并发限时活动、库存扣减准确性、分布式锁效果
## 安全考虑