# 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%'
1

小数据量没问题,但文件多了以后,体验和性能都会变差。

卡码网盘里做的是:

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 服务消费消息后,会按顺序执行:

  1. 建立文档索引
  2. 生成默认摘要
  3. 生成默认标签

单文件问答时,系统会优先根据用户问题去 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)可全额退款!

上次更新:: 5/20/2026, 4:28:39 PM

评论

验证登录状态...