云智汇 AI 在线教育平台
时间: 2026.01 - 2026.03
基于微服务架构的 AI 在线教育平台,支持课程学习、社交互动、营销交易与智能客服等核心业务,引入 Spring AI 路由工作流 Agent,实现课程问答、个性化推荐与智能下单,并重点解决高并发场景下的数据一致性与系统性能问题。
系统架构
┌──────────────┐
│ Nginx 网关 │
└──────┬───────┘
│
┌──────┴───────┐
│ Spring Cloud │
│ Gateway │
└──────┬───────┘
┌─────────────┬───┴───┬─────────────┐
│ │ │ │
┌────┴────┐ ┌─────┴────┐ ┌┴──────────┐ ┌┴──────────┐
│ 用户服务 │ │ 课程服务 │ │ AI Agent │ │ 交易服务 │
│ │ │ │ │ (Spring │ │ │
│ Nacos │ │ Nacos │ │ AI) │ │ Nacos │
│ 注册发现 │ │ 注册发现 │ │ │ │ 注册发现 │
└─────────┘ └──────────┘ └───────────┘ └──────────┘
│ │ │ │
┌────┴─────────────┴────────────┴──────────────┴────┐
│ 中间件层 │
│ Redis │ RabbitMQ │ MongoDB │ Pinecone │ MySQL │
└───────────────────────────────────────────────────┘核心工作
1. 路由工作流 Agent
基于 Spring AI 构建路由工作流 Agent,识别课程咨询、课程推荐、购买下单等意图,并分发至对应业务智能体。
路由策略:
- 意图识别:LLM 分析用户消息,判断意图类别
- 任务分发:将请求路由到对应的业务 Agent
- 异常兜底:未识别意图走通用问答链路
2. RAG 课程知识库
基于 RAG + Pinecone 搭建课程知识库,召回课程介绍、适用人群与课程大纲等上下文,提升课程问答与个性化推荐准确性。
RAG 流程:
- 课程文档 → 分块切片(按章节/段落)
- Embedding 向量化 → 存入 Pinecone
- 用户提问 → 向量检索 TopK 课程上下文
- 上下文注入 Prompt → LLM 生成精准回答
3. Tool Calling 与对话持久化
基于 Tool Calling 封装 CourseTools、OrderTools 等业务工具,并使用 MongoDB 持久化多轮对话、工具调用与执行轨迹。
工具封装:
CourseTools:查询课程详情、搜索课程、获取课程大纲OrderTools:创建订单、查询订单状态、取消订单- 高风险操作需用户二次确认
4. 播放进度合并写库
基于 Redis Hash + DelayQueue 实现播放进度合并写库,降低数据库写压力并保证学习进度最终一致性。
方案设计:
- 用户播放进度 → 写入 Redis Hash(按课程分片)
- DelayQueue 定时触发 → 批量合并写入 MySQL
- 高频写入场景下,DB 写入量降低 90%+
5. 优惠券领取优化
基于 RabbitMQ + Redisson + 乐观锁优化优惠券领取链路,实现请求异步削峰、用户防重领取、库存安全扣减和消费幂等。
优化链路:
用户请求 → Redis 预检(Redisson 防重)→ RabbitMQ 异步入队
→ 消费者消费 → 乐观锁扣减库存 → 记录领取流水(幂等键)6. 点赞与排行榜
基于 Redis Set / ZSet 重构点赞与排行榜系统,实现点赞去重、实时排行统计和高并发读写解耦。
数据结构选择:
- 点赞:
Redis Set—SADD course:likes:{id} userId天然去重 - 排行榜:
Redis ZSet—ZINCRBY course:rank 1 {id}实时排序 - 异步落库:定时任务将 Redis 数据同步到 MySQL
技术选型与考量
| 决策点 | 选择 | 理由 |
|---|---|---|
| 微服务框架 | Spring Cloud | 成熟的 Java 微服务生态,Nacos 注册中心 + 配置中心 |
| AI 框架 | Spring AI | 与 Spring 生态无缝集成,原生支持 Tool Calling、RAG、Advisor |
| 向量数据库 | Pinecone | 全托管服务,免运维,支持 Serverless 模式按量计费 |
| 对话存储 | MongoDB | 文档模型天然适合存储非结构化的多轮对话和工具调用轨迹 |
| 分布式锁 | Redisson | 基于 Redis 的分布式锁,Lua 脚本保证原子性 |
| 消息队列 | RabbitMQ | 可靠消息投递,支持死信队列和延迟队列 |
技术栈
JavaSpringBootSpringCloudMyBatis-PlusMySQLRedisRedissonRabbitMQXXL-JobSpring AIPineconeMongoDB
| 技术 | 用途 |
|---|---|
| SpringBoot | 后端框架,提供 RESTful API 和依赖注入 |
| SpringCloud | 微服务架构,服务注册发现、配置中心、网关 |
| MyBatis-Plus | ORM 框架,简化数据库操作 |
| MySQL | 关系型数据库,存储用户、课程、订单等核心数据 |
| Redis | 缓存与数据结构服务,支撑点赞、排行榜、延迟队列 |
| Redisson | 分布式锁,优惠券领取防重和库存扣减 |
| RabbitMQ | 消息队列,优惠券领取异步削峰 |
| XXL-Job | 分布式任务调度,定时任务管理 |
| Spring AI | AI 集成框架,路由工作流 Agent、RAG、Tool Calling |
| Pinecone | 向量数据库,课程知识库语义检索 |
| MongoDB | 文档数据库,持久化多轮对话与工具调用轨迹 |