技术架构
整体架构
悦木图库采用现代化的前后端分离架构,后端基于Spring Boot微服务架构,前端使用Vue 3生态系统构建单页面应用(SPA)。系统具有高可用性、高并发性和可扩展性。
后端技术栈
核心框架
- Spring Boot 2.6.13 - 作为主要开发框架,提供快速开发能力
- Spring MVC - Web层框架,处理HTTP请求和响应
- Spring Security - 安全框架,提供认证和授权功能
数据访问层
- MyBatis-Plus 3.5.9 - ORM框架,简化数据库操作
- MySQL 8.0 - 主数据库,存储用户、内容、社交关系等数据
- Redis 7.0 - 缓存和会话存储,提高系统性能
- Elasticsearch 8.0 - 搜索引擎,提供全文检索功能(必需组件)
消息队列与异步处理
- Netty 4.1.104 - 网络编程框架,用于WebSocket实时通信
- LMAX Disruptor 3.4.2 - 高性能无锁队列,用于异步处理
缓存与会话管理
- Redisson 3.21.0 - Redis客户端,提供分布式锁等功能
- Caffeine 2.9.3 - 本地缓存,提高热点数据访问速度
权限认证
- Sa-Token 1.39.0 - 权限认证框架,支持多种登录模式
- JWT - 用于无状态身份验证
数据库扩展
- ShardingSphere JDBC 5.2.0 - 分库分表中间件,支持水平扩展
对象存储
- 腾讯云COS SDK 5.6.227 - 对象存储服务,存储图片、视频等文件(必需组件)
AI与搜索
- LangChain4j 0.24.0 - RAG框架,提供AI对话功能
- Elasticsearch Client - 用于全文搜索和数据分析
工具库
- Hutool 5.8.26 - Java工具集,简化开发
- Apache POI 5.2.2 - Excel文档处理
- Fastjson 2.0.43 - JSON序列化/反序列化
- Jsoup 1.15.3 - HTML解析和清理
API文档
- Knife4j 4.4.0 - Swagger增强工具,提供美观的API文档界面
前端技术栈
核心框架
- Vue 3.5.13 - 渐进式JavaScript框架,采用Composition API
- TypeScript 5.6.3 - JavaScript超集,提供类型安全
UI框架
- Ant Design Vue 4.2.6 - PC端企业级UI组件库
- Vant 4.9.22 - 移动端UI组件库
状态管理与路由
- Pinia 2.2.6 - Vue官方推荐的状态管理库
- Vue Router 4.4.5 - Vue官方路由管理器
HTTP客户端
- Axios 1.10.0 - 基于Promise的HTTP客户端
数据可视化
- ECharts 5.6.0 - 数据可视化图表库
- ECharts WordCloud 2.1.0 - 词云图插件
富文本编辑器
- Bytemd 1.22.0 - Markdown编辑器组件
- WangEditor 5.1.23 - 富文本编辑器
图片处理
- Vue Cropper 1.1.4 - 图片裁剪组件
- Vue Easy Lightbox 1.19.0 - 图片灯箱浏览组件
- TUI Image Editor 3.15.3 - 图片编辑器
- CompressorJS 1.2.1 - 图片压缩库
- Browser Image Compression 2.0.2 - 浏览器图片压缩
音视频处理
- FFmpeg.js 0.9.8 - 视频处理库
- Wavesurfer.js 7.9.9 - 音频波形可视化
- RecorderX 2.0.2 - 音频录制组件
动画与交互
- Animate.css 4.1.1 - CSS动画库
- Vue Use Motion 2.2.6 - Vue动画库
- Swiper 12.0.3 - 触摸滑动组件
- Vue Baberrage 3.2.4 - 弹幕组件
构建工具
- Vite 6.0.1 - 下一代前端构建工具
- ESBuild - 快速的JavaScript打包工具
微服务架构
服务拆分
系统采用微服务架构设计,主要分为以下服务:
- 用户服务 - 处理用户注册、登录、个人信息管理
- 内容服务 - 管理图片、帖子、视频等内容
- 社交服务 - 处理点赞、评论、关注等社交功能
- 搜索服务 - 提供全文检索和推荐功能
- 文件服务 - 管理文件上传、存储和CDN分发
- 消息服务 - 处理站内信、通知等消息推送
- AI服务 - 提供智能内容分析和对话功能
服务治理
- 服务注册与发现 - 使用Nacos作为服务注册中心
- 负载均衡 - 集成Ribbon实现客户端负载均衡
- 熔断降级 - 使用Sentinel实现流量控制和熔断
- 分布式配置 - 通过Nacos统一管理配置
数据库设计
主要表结构
- user - 用户基本信息表
- picture - 图片信息表(分表存储)
- post - 帖子信息表
- space - 空间信息表
- comment - 评论表
- like_record - 点赞记录表
- favorite_record - 收藏记录表
- share_record - 分享记录表
- view_record - 浏览记录表
分库分表策略
- 按空间ID分表 - 图片表根据spaceId进行水平分表
- 按用户ID分库 - 用户相关表根据userId进行分库
- 冷热数据分离 - 历史数据归档到单独的数据源
缓存策略
多级缓存
- 本地缓存 - 使用Caffeine缓存热点数据
- 分布式缓存 - 使用Redis缓存会话和全局数据
- CDN缓存 - 静态资源通过CDN加速
缓存更新策略
- 写穿策略 - 缓存与数据库保持强一致
- 失效策略 - 设置合理的过期时间
- 预热策略 - 系统启动时预加载常用数据
安全措施
认证授权
- 多重身份验证 - 支持密码、短信、第三方登录
- 权限分级 - 用户、管理员、超级管理员多级权限
- 会话管理 - 基于Redis的分布式会话管理
数据安全
- 敏感信息脱敏 - 用户隐私信息脱敏处理
- SQL注入防护 - 使用预编译语句防止注入攻击
- XSS防护 - 输入内容过滤和输出转义
内容审核
- AI自动审核 - 图片和文字内容自动审核
- 人工复核 - 重点内容人工审核机制
- 举报机制 - 用户举报和处理流程
性能优化
前端优化
- 代码分割 - 按路由和功能模块分割代码
- 懒加载 - 图片和组件懒加载
- 缓存策略 - 合理设置浏览器缓存
- CDN加速 - 静态资源CDN分发
后端优化
- 数据库优化 - 索引优化、查询优化
- 缓存优化 - 合理使用多级缓存
- 异步处理 - 耗时操作异步处理
- 连接池优化 - 数据库和Redis连接池调优
部署架构
容器化部署
- Docker - 应用容器化部署
- Docker Compose - 多容器应用编排
- Kubernetes - 容器集群管理
CI/CD流水线
- 自动化构建 - 代码提交自动构建
- 自动化测试 - 单元测试和集成测试
- 自动化部署 - 一键部署到测试和生产环境
监控与运维
应用监控
- 日志管理 - 结构化日志收集和分析
- 性能监控 - 应用性能指标监控
- 业务监控 - 关键业务指标监控
基础设施监控
- 服务器监控 - CPU、内存、磁盘使用情况
- 网络监控 - 网络延迟和带宽监控
- 数据库监控 - 数据库性能和连接监控
