# Java AI 微服务网盘项目
这次在知识星球里更新一个 Java 项目:卡码网盘。
它不是简单做一个“上传文件、下载文件”的网盘项目。
这是一个基于 Spring Boot 3 + Spring Cloud Alibaba + Dubbo + Vue3 的前后端分离、多模块 AI 微服务网盘系统。
传统网盘项目是“文件怎么存、怎么传、怎么分享”。
这个项目在传统网盘能力之上,又加了一层 AI 文档助手能力:
文件上传后,可以自动做文档解析、摘要生成、标签生成,还可以围绕单个文件做 AI 问答。
也就是说,它不是普通文件管理系统,而是:
网盘业务 + 微服务架构 + AI 文档理解。

# 项目定位
如果一句话介绍这个项目,我建议这样说:
卡码网盘是一个 Java AI 微服务网盘项目,基于 Spring Boot 3 + Spring Cloud Alibaba + Dubbo + Nacos 构建,按认证、网关、文件、分享、回收站、用户、AI 文档分析等业务边界拆分服务,并在传统网盘能力上落地 AI 摘要、标签和单文件问答。
这句话里有三个关键词:
- 网盘业务:上传、下载、搜索、分享、回收站这些真实业务场景都覆盖了
- 微服务架构:Gateway、Nacos、Dubbo、多模块服务拆分都用上了
- AI 文档能力:Tika 文档解析、pgvector 向量检索、RAG 问答、摘要标签都落地了
所以这个项目的简历标签,不只是“Java 后端项目”,还可以写成:
Java 微服务项目 + AI 应用项目 + 网盘业务系统。
这个定位会比单纯写“文件管理系统”强很多。

# 技术栈

# 为什么网盘项目适合写进简历?
因为网盘项目天然不是简单 CRUD。
文件上传要考虑大文件。
大文件要考虑分片。
分片要考虑断点续传。
重复文件要考虑秒传。
下载要考虑内存压力。
搜索要考虑性能和可用性。
分享要考虑权限、提取码、过期时间。
删除要考虑误删恢复。
AI 文档问答还要考虑文档解析、向量检索、上下文隔离、模型调用和降级策略。
这些点,都是面试官喜欢深挖的地方。
# 项目专栏目录

项目介绍、项目结构、相关技术介绍、项目启动,通用设计、业务涉及、面试题 一应俱全
从项目源码到答疑,一条龙服务,不用担心学不会,有什么问题都可以在专属微信群提问:(知识星球里每个项目都有专属答疑群)

# 四个核心亮点
# 1、文件上传不是一个 MultipartFile 就完事
很多同学做上传,就是前端选中文件,后端保存一下,然后就结束了。
但真实网盘不会这么简单。
卡码网盘里的上传链路是:
前端计算 MD5 -> 秒传校验 -> 分片上传 -> 查询已上传分片 -> 跳过已传分片 -> 合并分片 -> 保存用户文件记录 -> 触发 AI 文档预热。
这里可以讲的点很多:
- 秒传:同一用户上传过相同内容文件时,直接复用物理文件记录
- 分片上传:默认走分片链路,不是只有大文件才分片
- 断点续传:根据 identifier 查询已上传分片,只补传缺失分片
- 并发保护:
userId + identifier维度加分布式锁 - 数据约束:
identifier + chunk_number + create_user保证分片唯一 - AI 预热:上传完成后,支持类型的文档会进入 AI 处理链路
这就不是“我写了一个上传接口”了。
这是大文件上传的一套完整工程链路。

# 2、搜索不是 MySQL like 一把梭
很多项目里的搜索就是:
select * from user_file where filename like '%xxx%'
小数据量没问题,但文件多了以后,体验和性能都会变差。
卡码网盘里做的是:
ES 优先 + MySQL 回退 + Canal 增量同步 + 服务端统一高亮。
平时优先查 Elasticsearch,保证检索能力。
如果 ES 没结果,或者 ES 不可用,再回退 MySQL,保证搜索功能不会直接挂掉。
同时通过 Canal 订阅 user_file 变更,把 MySQL 数据同步到 ES 索引。
面试官问:
“为什么不用 MySQL like?”
你可以讲 ES 的检索能力和扩展性。
面试官继续问:
“ES 数据和 MySQL 怎么保持同步?”
你可以讲 Canal 订阅 binlog。
面试官再问:
“ES 挂了怎么办?”
你可以讲 MySQL 回退,功能可用性优先。

# 3、分享链接不是直接暴露文件地址
很多同学做分享功能,就是生成一个文件 URL,然后给别人访问。
这其实很危险。
卡码网盘里的分享,本质上不是直接暴露物理文件,而是:
share 主记录 + share_file 文件映射 + 加密 shareId + 提取码校验 + 过期校验 + 下载前二次校验。
分享支持公开分享、私密分享、提取码、有效期、我的分享管理、取消分享、匿名访问分享页。
过期处理也不是简单写个定时任务扫库。
项目里做了“双保险”:
- 访问分享时实时校验是否过期
- 创建分享后,通过 Redisson 延迟队列注册到期清理任务
这样既保证过期分享不能继续访问,也能避免无效分享长期残留。
这个设计在面试里很好讲,因为它涉及权限、安全、延迟任务、匿名访问和下载校验。

# 4、AI 文档能力不是简单调接口
这个项目最有差异化的地方,是把 AI 能力和网盘结合起来了。
不是单独做一个聊天框,而是围绕网盘里的文档做增强:
- 文档解析
- 文档索引
- 智能摘要
- 智能标签
- 单文件问答
- pgvector 向量检索
- Apache Tika 文档解析
- OpenAI-compatible Provider 调用大模型
上传完成后,只要文件后缀在支持范围内,就会在事务提交后发送 AI 预热消息。
AI 服务消费消息后,会按顺序执行:
- 建立文档索引
- 生成默认摘要
- 生成默认标签
单文件问答时,系统会优先根据用户问题去 pgvector 里检索相关分片,再把这些分片作为上下文交给大模型回答。
如果没有索引,或者向量库不可用,再回退到 Tika 全文解析。
这就是一个轻量级 RAG 的落地。
面试官问:
“你这个 AI 功能是不是调了个接口?”
你就可以讲:
- Tika 如何解析文档
- 文本为什么要切 chunk
- embedding 怎么生成
- pgvector 里存什么
- 问答时怎么召回相关片段
- 上下文怎么拼给大模型
- 为什么 AI 服务要单独拆出来
这就不是简单调 API 了。

# 获取本专栏
扫如下十元代金券,只需要 196元,加入知识星球,你将获取20+套项目教程的专栏+源码+配套答疑: (每个项目不到十元钱,而且加入星球的服务远不止就这些项目!)

加入知识星球后,记得加如下微信,发动付款截图,拉你到星球交流群:

如果不知道知识星球对自己是否有帮助,可以进来看看,感受一下星球里的学习氛围,三天(72h)内可以全额退款!
知识星球APP右上角 自己申请退款,一个小时到账 全程无套路, 记得是三天内(72h)才能退款。
# 项目专栏细节
理论知识讲解:

循序渐进,带你做实战开发:

最后,求职相关,简历写法、相关面试题,技术亮点 都安排的明明白白:

技术选型的理由、技术难点、解决方案、技术成长点、深入解析计数原理:

针对项目原理和项目实现都准备了相关面试题
项目原理面试题以及回答:

项目实战面试题以及回答:

# 获取本项目专栏
本项目专栏和源码,已经放在代码随想录知识星球里。
扫如下十元代金券,只需要 196元,加入知识星球:

加入知识星球后,记得加如下微信,发动付款截图,拉你到星球交流群:

加入知识星球四大权益
1、高质量项目合集(C++ / Java / Go / Python / AI)
全网十分稀缺的 C++ 大模型应用(CPPAIService),Go 大模型应用(GopherAI),Java 大模型应用(JChatMind)。

2、精品八股PDF
速记八股帮助众多录友们,短时间内快速上岸:

3、独家资料 & 学习氛围
大厂面经、薪资报告、秋招投递总结表

学习路线清晰,方向明确

星球里全是志同道合的伙伴,学习氛围 🔥🔥🔥

4、卡哥 1v1 提问 & 简历修改
直接向我提问,面试疑惑、学习路线、职业规划一对一解答

加入知识星球后如果不满意,三天内(72h)可全额退款!
评论
验证登录状态...