{T}

私人分布式存储系统

项目背景

这个项目的目标不是做一个“课程展示页”,而是围绕文件存储、缓存、定时任务和多存储后端集成,搭建一套更接近真实业务的分布式存储系统。

项目价值

  • 练习模块化拆分,而不是把全部逻辑堆在单体应用里
  • 理解对象存储、本地存储、缓存和调度任务如何协同工作
  • 在一个项目里串联 RedisZooKeeperRocketMQ、对象存储等中间件思路

适合重点观察的能力

  • 存储抽象设计是否解耦
  • 缓存层如何提升读性能
  • 一致性控制如何避免并发写冲突
  • 定时任务如何做补偿和清理

技术特点

  • 模块化架构,避免单体项目耦合失控
  • 支持本地存储与对象存储扩展
  • 集成 Caffeine + Redis 做多级缓存
  • 利用 Redis / ZooKeeper 处理并发写场景下的一致性协调
  • 通过定时任务做清理、修复和延迟处理

项目业务模块划分

基础环境配置

  • JDK:原资料为 1.8,如果重做建议直接迁移到 21(LTS,Spring Boot 3.5.x 支持)
  • Maven:3.6+
  • Git:2.x
  • Spring Boot:原资料为 2.1.9.RELEASE,现代项目建议升级到 3.5.x
  • MyBatis-Plus:原资料为 3.3.2,建议升级到 3.5.12(Boot 3 需用 mybatis-plus-spring-boot3-starter)

中间件版本

  • Redis 6.2.6 → 7.x
  • ZooKeeper 3.4.14 → 3.8.x(LTS)/3.9.x
  • MySQL 8.0
  • RocketMQ 4.5.1 → 5.x

当前阅读建议

  • 把它当成“中间件组合与项目拆分”的案例来看
  • 不要直接照搬其中的旧版本环境
  • 重点思考:如果今天重做,哪些组件该升级,哪些设计该保留

版本差异(中间件版本 → 2026)

中间件旧版当前推荐
JDK1.821 LTS
Spring Boot2.1.9.RELEASE3.5.x
MyBatis-Plus3.3.23.5.12(boot3 starter)
Redis6.2.67.x
ZooKeeper3.4.143.8.x(LTS)/3.9.x(Curator 5.x)
RocketMQ4.5.15.x(gRPC 协议)
MySQL8.08.0/8.4 LTS

模块化设计(存储抽象、多级缓存 Caffeine+Redis、一致性协调、定时补偿)是核心价值,可完全保留;中间件按上表升级即可。