v1.1.0 — 中间件增强版本
SpikeGuard(高并发智能秒杀风控平台)面向电商大促、票务抢购、限量商品发售、优惠券抢领和会员权益秒杀等场景,提供活动配置、库存预热、秒杀令牌、实时风控、Redis Lua 原子扣减、RabbitMQ 异步下单、AI 风控解释、分布式事务、链路追踪、监控告警、日志聚合和审计追踪。
支持邮箱验证码注册和商城游客预览模式(首页/活动列表无需登录可浏览)。
- 后端:Java 21、Spring Boot 3、Spring Cloud、Spring Cloud Alibaba(Nacos、Sentinel)、Spring Security、MyBatis Plus、PostgreSQL 16、Micrometer + Prometheus、Micrometer Tracing + Zipkin、Seata AT、Knife4j、MinIO SDK、Spring Mail(QQ SMTP)、JUnit。
- 前端:Vue 3、Vite、TypeScript、Element Plus、Pinia、Vue Router、Axios、ECharts。
- AI 服务:Python 3.10、FastAPI、Pydantic、LangGraph 兼容工作流结构、动态规则解释。
- 基础中间件:PostgreSQL 16、Redis 7、RabbitMQ 3-management,通过 Docker Compose 启动。
| 中间件 | 用途 | 版本 |
|---|---|---|
| Nacos | 服务注册发现 + 配置中心 | v2.3.0 |
| Knife4j | API 文档聚合(/doc.html) | 4.x |
| Prometheus + Grafana | 指标监控与告警 | latest |
| Zipkin | 分布式链路追踪 | 3 |
| Sentinel | 限流熔断 | — |
| Elasticsearch + Kibana | 日志聚合与检索 | 8.12.0 |
| MinIO | 对象存储 | latest |
| Seata AT | 分布式事务 | 2.0.0 |
仓库只提交 .env.example。真实 .env、数据库密码、Redis 密码、RabbitMQ 密码、虚拟机密码、GitHub Token 和模型 API Key 不得提交到仓库。所有配置文件都通过环境变量读取敏感值。
cd L:\ProjectSource\Project\SpikeGuard
copy .env.example .env
docker compose config
docker compose up -d后端:
cd L:\ProjectSource\Project\SpikeGuard\backend
L:\Develop\apache-maven-3.9.12\bin\mvn.cmd clean packageAI 服务:
cd L:\ProjectSource\Project\SpikeGuard\ai-service
conda run -n opspilot pip install -r requirements.txt
conda run -n opspilot python -m compileall .
conda run -n opspilot uvicorn main:app --host 0.0.0.0 --port 8090 --reload前端(管理后台):
cd L:\ProjectSource\Project\SpikeGuard\frontend
npm install
npm run build
npm run dev前端(商城):
cd L:\ProjectSource\Project\SpikeGuard\frontend-mall
npm install
npm run build
npm run dev首次启动后,通过登录页的注册入口创建第一个用户。注册需邮箱验证码(通过 QQ SMTP 发送),系统会将首个注册用户授予管理员角色。商城首页和活动列表支持游客浏览,无需登录。生产环境请使用强密码并妥善保管运行时 .env。
graph TB
Client["客户端(管理后台 / 商城)"] --> GW["sg-gateway<br/>Nacos 动态路由 + Sentinel 限流"]
GW --> Services["13 个微服务<br/>auth / product / activity / inventory<br/>seckill / risk / order / payment<br/>ai-adapter / audit / monitor"]
Services --> Nacos["Nacos 服务注册"]
Services --> PG["PostgreSQL 16"]
Services --> Redis["Redis 7"]
Services --> RabbitMQ["RabbitMQ"]
Services --> Seata["Seata 分布式事务"]
Services --> MinIO["MinIO 对象存储"]
Services --> Prometheus["Prometheus 指标"]
Prometheus --> Grafana["Grafana 仪表盘"]
Services --> Zipkin["Zipkin 链路追踪"]
Services --> ES["Elasticsearch + Kibana"]
Services --> AI["FastAPI AI 服务"]
活动创建 -> 发布 -> 库存预热 -> 秒杀令牌 -> 风控评估(Sentinel 限流保护)
-> Redis Lua 原子扣减 -> RabbitMQ 异步下单 -> 幂等订单创建
-> 支付模拟 -> 分布式事务(Seata AT)-> 监控指标上报(Prometheus)
-> 日志聚合(ES + Kibana)-> AI 解释与审计追踪
主秒杀接口优先快速返回,不在请求线程里执行复杂 AI 调用或慢查询。AI 服务用于复杂风险解释、策略建议和异步分析,不作为主链路单点瓶颈。
| 中间件 | 地址 |
|---|---|
| Nacos 控制台 | http://192.168.101.130:8848/nacos |
| RabbitMQ 管理 | http://192.168.101.130:15673 |
| Zipkin 链路追踪 | http://192.168.101.130:9411 |
| Prometheus | http://192.168.101.130:9090 |
| Grafana 仪表盘 | http://192.168.101.130:3000 |
| Kibana 日志 | http://192.168.101.130:5601 |
| MinIO 控制台 | http://192.168.101.130:9001 |
| Seata 控制台 | http://192.168.101.130:7091 |
| Knife4j API 文档 | http://localhost:8080/doc.html |
backend/ Spring Boot 微服务集群(13 模块 + 兼容单体)
frontend/ Vue 3 管理后台
frontend-mall/ Vue 3 商城前端
ai-service/ FastAPI 风控解释服务
docs/ 需求、架构、数据库、API、部署和验收文档
deploy/ VM、Nginx、Docker、Prometheus、logback 部署资产
scripts/ 初始化、部署、压测和 Git 辅助脚本
docker compose config
cd backend; L:\Develop\apache-maven-3.9.12\bin\mvn.cmd clean package
cd ..\ai-service; conda run -n opspilot python -m compileall .
cd ..\frontend; npm install; npm run build