📚 课程介绍
本课程将使用Go语言,结合RabbitMQ、阿里云OSS、Ceph、Redis等技术,实现一个类似百度云盘的企业级分布式云存储系统,从原型设计到微服务化,全面学习云存储系统的构建。
📋 学习前提
1. Go语言基础(Go是一种静态类型、编译型、并发型语言) 2. Linux基础(Linux是云计算环境中常用的操作系统) 3. Docker基础(Docker是一种容器化平台,用于打包、部署和运行应用程序) 4. 分布式系统基础(了解分布式系统的基本概念和架构)
📖 课程目录
第1章 课程介绍
1-1 导学
1-2 课程介绍
第2章 实战-“云存储”系统原型
2-1 “云存储”系统原型之简单文件上传服务架构说
2-2 编码实战:“云存储”系统之实现上传接口
2-3 编码实战:“云存储”系统之保存文件元信息
2-4 编码实战:“云存储‘系统之实现单个文件查询信息接口
2-5 编码实战:“云存储”系统之实现文件下载接口
2-6 编码实战:“云存储”系统之实现文件修改接口
第3章 “云存储”系统之基于MySQL实现的文件数据库
3-1 MySQL基础知识
3-2 MySQL主从数据同步演示
3-3 文件表的设计及创
3-4 编码实战:“云存储”系统之持久化元数据到文
3-5 编码实战:“云存储”系统之从文件表中获取元数据
3-6 本章小结
第4章 “云存储”系统之基于用户系统实现的资源隔离及鉴权
4-1 帐号系统介绍与用户表设
4-2 编码实战:“云存储”系统之实现用户注册接口
4-3 编码实战:“云存储”系统之实现用户登录接口
4-4 编码实战:“云存储”系统之实现用户信息查询接口
4-5 接口梳理小结
4-6 编码实战:“云存储”系统之快速实现访问鉴权接口
第5章 “云存储”系统之基于Hash计算实现秒传
5-1 Hash算法对比及秒传原理
5-2 用户文件表设计与创建
5-3 编码实战:“云存储”系统之升级改造上传接口
5-4 编码实战:“云存储”系统之基于用户查询文件Hash信息
5-5 编码实战:“云存储”系统之实现秒传功能接口
第6章 “云存储”系统之基于Redis实现分块上传及断点续传
6-1 分块上传与断点续传原理
6-2 编码实战:“云存储”系统之Go实现Redis连接池(存储分块信息)
6-3 编码实战:“云存储”系统之实现初始化分块上传接口
6-4 编码实战:“云存储”系统之实现分块上传接口
6-5 编码实战:“云存储”系统之实现合并分块接口
6-6 分块上传场景测试+小结
第7章 “云存储”系统之基于Ceph实现私有云存储服务
7-1 Ceph是什么
7-2 Ceph集群介绍及兼容亚马逊S3接口详
7-3 编码实战:“云存储”系统之Go访问管理Ceph集
7-4 编码实战:“云存储”系统之Go实现Ceph的文件上传下载
第8章 “云存储”系统之基于阿里云OSS实现海量数据上云
8-1 阿里云oss 简介
8-2 阿里云oss特点
8-3 阿里云oss专业术语
8-4 阿里云oss控制台管理
8-5 编码实战:阿里云oss上传文件
8-6 编码实战:oss下载文件
8-7 编码实战:oss其他功能
8-8 阿里云oss本章小结
第9章 “云存储”系统之基于RabbitMQ实现异步存储
9-1 RabbitMQ简介
9-2 关于任务的同步与异步
9-3 RabbitMQ工作原理和转发模式
9-4 RabbitMQ工作原理和转发模式
9-5 Docker安装RabbitMQ及UI管理
9-6 编码实战 实现异步转移的MQ生产者
9-7 编码实战 实现异步转移的MQ消费者
9-8 编码实战 异步转移文件测试+小结
第10章 “云存储”系统之架构微服务化
10-1 云存储系统之微服务架构(1)
10-2 微服务基础概念与原理
10-3 云存储系统之微服务架构(2)
10-4 Web框架Gin基础介绍
10-5 云存储系统之微服务架构(2)
10-6 编码实战 基于Gin改造用户service
10-7 编码实战 基于Gin改造用户service
10-8 gRPC与Protobuf基础原理
10-9 RPC框架go-micro基础介绍
10-10 编码实战 改造账号系统service
10-11 编码实战 改造api网关service
10-12 编码实战 改造文件上传service
10-13 综合测试演示+小结
第11章 “云存储”系统之k8s&Docker容器化实战
11-1 Docker与Docker-Compose基础概念
11-2 基于Docker-compose与Traefik的容器化部署演示
11-3 基于Kubernetes的容器化部署演示
11-4 基于容器的微服务反向代理利器Traefik
11-5 Kubernetes基础原理
第12章 “云存储”系统之持续集成部署
12-1 持续构建之基础概念
12-2 基于gitlab+jenkins+harbor的自动化部署配置演示
第13章 课程总结
13-1 课程总结之章节重点及技能树温习
