课程 \后端开发 \Go \Go实战仿百度云盘 实现企业级分布式云存储系统

Go实战仿百度云盘 实现企业级分布式云存储系统

  • 视频目录
  • 评论
说明:
免责声明:点击查看详情
简介:
云程序员,微服务,是最近几年一直被频频提到的热门词汇。本课程将通过Golang来实现一个支持断点续传和秒传的分布式云存储服务系统。课程中老师将手把手带你从快速构建“云存储”原型系统,到分块上传,到搭建访问阿里云,最后进行系统的微服务化,让你快速掌握架构传输性能和稳定性的优化过程,秒变云时代中第一代“云程序员”。
教程目录:
第1章课程介绍

导学将会告诉同学学习本门课程的必要性,以及收获那些技能,学习要求,学习技巧。课程介绍部分概括介绍文件传输涉及的应用场景(比如网盘),技术原理,以及传输服务架构设计等,以及学习本课程的一些前置知识点。课程的章节流程大致可分为:(1)实现一个简易版云盘系统;(2)加入秒传和分块上传等功能;(3)接入开源存储...

1-1导学试看

1-2课程介绍试看

第2章实战-“云存储”系统原型【实现一个超精简版云盘】

代码实战之前的架构说明,开发环境准备等;接口逻辑的实现,包括上传文件,下载文件,查询以及更改文件元信息等功能;结合Postman进行接口测试。

2-1“云存储”系统原型之简单文件上传服务架构说明

2-2编码实战:实现上传接口

2-3编码实战:保存文件元信息

2-4编码实战:实现单个文件查询信息接口

2-5编码实战:实现多个文件查询信息接口

2-6编码实战:实现文件下载接口

2-7编码实战:实现文件修改接口+小结试看

第3章“云存储”系统之基于MySQL实现的文件数据库【持久化云文件信息】

系统架构升级说明;MySQL基于读写分离的主从原理及实战部署;MySQL表字段设计及基于海量数据的水平分表;Go管理MySQL,实现文件metaData的持久化。

3-1MySQL基础知识

3-2MySQL主从数据同步演示

3-3文件表的设计及创建

3-4编码实战:持久化元数据到文件表

3-5编码实战:从文件表中获取元数据

3-6Docker入门基础文档

3-7Ubuntu中通过Docker安装配置MySQL主从节点

3-8本章小结

第4章“云存储”系统之基于用户系统实现的资源隔离及鉴权【账号和应用收入息息相关】

加入用户系统后架构升级说明;快速实现用户注册/登录/信息查询功能;快速实现用户资源隔离存储及安全鉴权功能。

4-1帐号系统介绍与用户表设计

4-2编码实战:实现用户注册接口

4-3编码实战:实现用户登录接口

4-4编码实战:实现用户信息查询接口

4-5接口梳理小结

4-6编码实战:快速实现访问鉴权接口+小结

4-7关于静态资源访问404的问题【补漏】

第5章“云存储”系统之基于Hash计算实现秒传【可大幅提升拥有海量文件的云盘性能】

Hash算法的对比分析;快速提升用户体验的文件秒传原理剖析;秒传场景的唯一文件表与用户文件表的差异性;秒传接口的快速实现。

5-1Hash算法对比及秒传原理

5-2用户文件表设计与创建

5-3编码实战:升级改造上传接口

5-4编码实战:基于用户查询文件Hash信息

5-5编码实战:实现秒传功能接口+小结

第6章“云存储”系统之基于Redis实现分块上传及断点续传【可大幅提升传输速度】

分块上传与断点续传原理;分块上传通用接口设计;Redis快速缓存文件分块信息;Go实现可重用的Redis连接池;分块上传通用接口逻辑实现。

6-1分块上传与断点续传原理

6-2编码实战:Go实现Redis连接池(存储分块信息)

6-3编码实战:实现初始化分块上传接口

6-4编码实战:实现分块上传接口

6-5编码实战:实现分块合并接口

6-6分块上传场景测试+小结

6-7文件断点下载原理

第7章“云存储”系统之基于Ceph实现私有云存储服务【自主管理集群,技术可控】

开源分布式存储框架之Ceph介绍;引入Ceph后的服务架构升级说明;Docker快速部署Ceph测试集群;兼容AWSS3接口的详细介绍;Go实现Ceph的对象上传下载功能。

7-1Ceph是什么

7-2Ceph集群介绍及兼容亚马逊S3接口详解

7-3编码实战:Go访问管理Ceph集群

7-4编码实战:Go实现Ceph的文件上传下载+小结

7-5Ubuntu下通过Docker快速搭建Ceph测试集群

7-6Centos7下Docker部署Ceph集群(nautilus最新版)

第8章“云存储”系统之基于阿里云OSS实现海量数据上云【低运维成本,大数据存储无忧】

OSS特性介绍,快速了解应用场景;OSS开发文档学习说明,快速上手入门;OSS控制台管理,集开发运维管理于一身;Go实现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实现异步存储【上传与转移解耦,提高稳定性】

详细讲解文件上传完成后,通过RabbitMQ队列服务,基于异步机制从上传节点转移到对象存储服务。

9-1Ubuntu下通过Docker安装RabbitMQ

9-2关于任务的同步与异步

9-3RabbitMQ简介

9-4RabbitMQ工作原理和转发模式

9-5Docker安装RabbitMQ及UI管理

9-6编码实战:实现异步转移的MQ生产者

9-7编码实战:实现异步转移的MQ消费者

9-8编码实战:异步转移文件测试+小结

第10章“云存储”系统之架构微服务化及docker容器化【全面优化系统架构及性能】

新增轻量级Ginweb框架及改造演示;新增gRPC网络通讯框架;新增API网关,实现限流及熔断等功能;新增服务注册功能,实现服务自发现和负载均衡;Docker容器化部署应用。

第11章“云存储”系统之持续集成部署和服务监控【快速部署更新,可视化管理】

开发完成并构建容器镜像后,如何基于git+jenkins+k8s完善持续部署(CI/CD)发布流程,以及如何完善日志收集和监控功能,从而实现一个比较完整的高可用性的云存储系统。

第12章课程总结

对每一章内容进行总结,并给出课后联系内容,加强对课程的掌握程度。