Skip to content

架构与技术栈

米卡AIGC云转码系统采用前后端分离的架构设计,由多个独立模块组成,各模块职责清晰,便于开发、部署和维护。

项目架构

整体架构

米卡AIGC云转码系统
├── server/          # 后端主服务(Go)
├── web/             # 前端管理后台(Vue 3)
├── receiver/        # 分发接收服务(Go)
├── up/              # 上传服务模块
└── wordpress/       # WordPress 插件

核心模块

1. Server - 后端主服务

后端主服务是整个系统的核心,基于 Go 语言开发,负责处理所有业务逻辑。

核心功能

  • 视频转码引擎:基于 FFmpeg 的视频转码服务
  • 存储管理:支持本地存储、阿里云 OSS、腾讯云 COS
  • 图库管理:图片上传、压缩、水印
  • 分发系统:多节点分发、负载均衡
  • API 服务:RESTful API 接口

技术栈

  • 框架:Gin(Web 框架)
  • ORM:GORM(数据库操作)
  • 数据库:MySQL 8.0+
  • 缓存:Redis 7.0+
  • 日志:Zap(高性能日志)
  • 配置:Viper(配置管理)
  • 认证:JWT(用户认证)

2. Web - 前端管理后台

前端管理后台基于 Vue 3 开发,提供可视化的系统管理界面。

核心功能

  • 视频管理:视频上传、转码任务管理、进度监控
  • 图库管理:图片上传、分类管理、水印设置
  • 存储管理:存储配置、空间统计、数据迁移
  • 系统设置:参数配置、水印模板、转码模板
  • 数据统计:可视化图表、数据分析

技术栈

  • 框架:Vue 3.4+
  • 构建工具:Vite 5.0+
  • UI 组件:Element Plus 2.5+
  • 状态管理:Pinia 2.1+
  • 路由:Vue Router 4.2+
  • HTTP 请求:Axios 1.6+
  • 类型检查:TypeScript 5.3+
  • 图表:ECharts

3. Receiver - 分发接收服务

分发接收服务负责处理视频分发请求,支持多节点部署和负载均衡。

核心功能

  • 视频分发:处理 M3U8 和 TS 文件的请求
  • 负载均衡:智能分配请求到不同节点
  • 缓存管理:热点内容缓存,提升访问速度
  • 访问统计:记录播放量、访问来源等数据
  • 防盗链:支持 Referer 验证、Token 验证

技术特点

  • 轻量级设计,资源占用低
  • 高并发支持,适合大流量场景
  • 支持 CDN 加速集成
  • 实时监控和日志记录

4. Up - 上传服务模块

上传服务模块提供独立的文件上传功能,可单独部署。

核心功能

  • 大文件上传:支持分片上传、断点续传
  • 格式验证:自动检测文件格式和完整性
  • 预处理:视频预处理、缩略图生成
  • 直传支持:支持直传到对象存储

5. WordPress - WordPress 插件

WordPress 插件让用户可以在 WordPress 网站中直接使用米卡云转码系统。

核心功能

  • 媒体库集成:与 WordPress 媒体库无缝集成
  • 短代码支持:通过短代码在文章中插入视频
  • 古腾堡块:支持 WordPress 古腾堡编辑器
  • 自动转码:上传视频自动提交转码任务
  • 播放器集成:内置 HLS 播放器

数据流转

视频转码流程

1. 用户上传视频

2. Web 前端 → Server API

3. Server 保存原始文件

4. 创建转码任务(队列)

5. FFmpeg 执行转码

6. 生成 M3U8 + TS 文件

7. 上传到存储(OSS/COS/本地)

8. 更新任务状态

9. 通知前端完成

视频播放流程

1. 用户请求播放

2. 获取 M3U8 地址

3. Receiver 接收请求

4. 验证权限(防盗链)

5. 从存储获取文件

6. 返回给播放器

7. 播放器解析 M3U8

8. 逐个请求 TS 分片

9. 播放视频

部署架构

单机部署

适合小规模使用,所有服务部署在一台服务器上。

┌─────────────────────────────────────┐
│         服务器(单机)               │
│  ┌──────────┐  ┌──────────┐        │
│  │  Nginx   │  │  MySQL   │        │
│  └──────────┘  └──────────┘        │
│  ┌──────────┐  ┌──────────┐        │
│  │  Server  │  │  Redis   │        │
│  └──────────┘  └──────────┘        │
│  ┌──────────┐  ┌──────────┐        │
│  │   Web    │  │ Receiver │        │
│  └──────────┘  └──────────┘        │
└─────────────────────────────────────┘

分布式部署

适合大规模使用,各服务独立部署,支持横向扩展。

┌──────────────┐
│   负载均衡    │
│   (Nginx)    │
└──────┬───────┘

   ┌───┴────┬────────┬────────┐
   │        │        │        │
┌──▼──┐  ┌──▼──┐  ┌──▼──┐  ┌──▼──┐
│Web 1│  │Web 2│  │API 1│  │API 2│
└─────┘  └─────┘  └──┬──┘  └──┬──┘
                     │        │
              ┌──────┴────────┴──────┐
              │                       │
         ┌────▼────┐           ┌─────▼────┐
         │  MySQL  │           │  Redis   │
         │ (主从)  │           │ (集群)   │
         └─────────┘           └──────────┘

         ┌────▼────┐
         │   OSS   │
         │ (对象存储)│
         └─────────┘

    ┌─────────┴─────────┐
    │                   │
┌───▼────┐         ┌───▼────┐
│Receiver│         │Receiver│
│ Node 1 │         │ Node 2 │
└────────┘         └────────┘

技术亮点

1. 高性能

  • Go 语言:天然支持高并发,协程机制轻量高效
  • Redis 缓存:热点数据缓存,减少数据库压力
  • 对象存储:分布式存储,支持海量文件
  • CDN 加速:全球节点分发,降低延迟

2. 高可用

  • 服务隔离:各模块独立部署,故障不影响其他服务
  • 负载均衡:多节点部署,自动故障转移
  • 数据备份:定期备份,支持快速恢复
  • 监控告警:实时监控,异常及时通知

3. 易扩展

  • 模块化设计:功能模块独立,易于扩展
  • 插件机制:支持 WordPress 等第三方平台集成
  • API 开放:提供完整的 RESTful API
  • 配置灵活:支持多种存储、多种部署方式

4. 安全性

  • JWT 认证:安全的用户认证机制
  • 权限控制:细粒度的权限管理
  • 防盗链:多种防盗链策略
  • 数据加密:敏感数据加密存储
  • 日志审计:完整的操作日志记录

技术栈详解

后端技术

核心框架

技术版本用途
Go1.22+主开发语言,提供高性能并发处理能力
Gin1.9+Web 框架,处理 HTTP 路由和中间件
GORM1.25+ORM 框架,简化数据库操作

数据存储

技术版本用途
MySQL8.0+主数据库,存储业务数据
Redis7.0+缓存、会话管理、消息队列

核心组件

技术版本用途
FFmpeg5.0+视频转码引擎,支持多种格式转换
JWT-用户认证和授权
Zap-高性能结构化日志库
Viper-配置文件管理

对象存储

  • 阿里云 OSS SDK - 阿里云对象存储集成
  • 腾讯云 COS SDK - 腾讯云对象存储集成
  • 本地文件系统 - 支持本地存储方案

前端技术

核心框架

技术版本用途
Vue3.4+渐进式前端框架
TypeScript5.3+类型安全的 JavaScript 超集
Vite5.0+下一代前端构建工具

UI 组件

技术版本用途
Element Plus2.5+Vue 3 UI 组件库
Pinia2.1+Vue 3 状态管理库
Vue Router4.2+Vue 官方路由管理器

工具库

技术版本用途
Axios1.6+HTTP 请求库
Day.js-轻量级日期处理库
ECharts-数据可视化图表库

运维技术

技术用途
Nginx反向代理、负载均衡、静态资源服务
SystemdLinux 系统服务管理
宝塔面板可视化服务器运维管理工具

浏览器支持

系统前端支持现代浏览器的最新版本:

浏览器最低版本
Chrome最新 2 个版本
Firefox最新 2 个版本
Safari最新 2 个版本
Edge最新 2 个版本

注意

不支持 IE 浏览器,建议使用现代浏览器以获得最佳体验。

系统要求

服务器配置建议

最低配置

  • CPU: 2 核
  • 内存: 4GB
  • 硬盘: 50GB
  • 带宽: 5Mbps

推荐配置

  • CPU: 4 核及以上
  • 内存: 8GB 及以上
  • 硬盘: 100GB 及以上(根据存储需求调整)
  • 带宽: 10Mbps 及以上

软件环境

  • 操作系统: Linux (推荐 Ubuntu 20.04+, CentOS 7+)
  • Go: 1.22+
  • Node.js: 18+
  • MySQL: 8.0+
  • Redis: 7.0+
  • FFmpeg: 5.0+
  • Nginx: 1.20+

下一步

基于 MIT 许可发布