本项目我们要做如下工作

  • 基于Golang实现分布式文件上传服务
  • 重点结合开源存储(Ceph)及公有云(阿里OSS), 支持断点续传及秒传功能
  • 微服务化及容器化部署

基础准备

  • 了解Golang,有项目开发经验更佳
  • 对文件传输与存储的场景有兴趣

本项目我们要用到的技术工具

  • Redis / RabbitMQ
  • Docker / Kubernets
  • 分布式对象存储Ceph
  • 阿里云OSS对象存储服务

学习收货

  • 文件分块断点上传&秒传
  • 对象从Ceph迁移到阿里云OSS的经验

章节划分

第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-1 MySQL基础知识
3-2 MySQL主从数据同步演示
3-3 文件表的设计及创建
3-4 编码实战:持久化元数据到文件表
3-5 编码实战:从文件表中获取元数据
3-6 Docker入门基础文档
3-7 Ubuntu中通过Docker安装配置MySQL主从节点
3-8 本章小结

第4章 “云存储”系统之基于用户系统实现的资源隔离及鉴权 【账号和应用收入息息相关】
加入用户系统后架构升级说明; 快速实现用户注册/登录/信息查询功能; 快速实现用户资源隔离存储及安全鉴权功能。

4-1 帐号系统介绍与用户表设计
4-2 编码实战:实现用户注册接口
4-3 编码实战:实现用户登录接口
4-4 编码实战:实现用户信息查询接口
4-5 接口梳理小结
4-6 编码实战:快速实现访问鉴权接口+小结
4-7 关于静态资源访问404的问题【补漏】

第5章 “云存储”系统之基于Hash计算实现秒传【可大幅提升拥有海量文件的云盘性能】
Hash算法的对比分析; 快速提升用户体验的文件秒传原理剖析; 秒传场景的唯一文件表与用户文件表的差异性; 秒传接口的快速实现。

5-1 Hash算法对比及秒传原理
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测试集群; 兼容AWS S3接口的详细介绍; Go实现Ceph的对象上传下载功能。

7-1 Ceph是什么
7-2 Ceph集群介绍及兼容亚马逊S3接口详解
7-3 编码实战:Go访问管理Ceph集群
7-4 编码实战:Go实现Ceph的文件上传下载+小结
7-5 Ubuntu下通过Docker快速搭建Ceph测试集群
7-6 Centos7下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-1 Ubuntu下通过Docker安装RabbitMQ
9-2 关于任务的同步与异步
9-3 RabbitMQ简介
9-4 RabbitMQ工作原理和转发模式
9-5 Docker安装RabbitMQ及UI管理
9-6 编码实战: 实现异步转移的MQ生产者
9-7 编码实战: 实现异步转移的MQ消费者
9-8 编码实战: 异步转移文件测试+小结

第10章 “云存储”系统之架构微服务化【全面优化系统架构及性能】
新增轻量级Gin web框架及改造演示; 新增gRPC网络通讯框架; 新增API网关, 实现限流及熔断等功能; 新增服务注册功能,实现服务自发现和负载均衡;

10-1 基于Docker部署服务注册发现中心consul集群
10-2 微服务基础概念与原理
10-3 云存储系统之微服务架构(1)
10-4 云存储系统之微服务架构(2)
10-5 Web框架Gin基础介绍
10-6 编码实战: 基于Gin改造用户service(1)
10-7 编码实战: 基于Gin改造用户service(2)
10-8 gRPC与Protobuf基础原理
10-9 RPC框架go-micro基础介绍
10-10 编码实战: 改造账号系统service
10-11 编码实战: 改造api网关service
10-12 编码实战: 改造文件上传service
10-13 综合测试演示+小结

第11章 “云存储”系统之k8s&Docker容器化实战【容器化:应用上云部署的基石】
本章带你实现应用的docker容器化,支持跨平台部署,是持续集成与部署的坚实基础。

11-1 Ubuntu18下通过kubeadm单机安装k8s(v1.14.1)集群
11-2 Ubuntu18下安装k8s(v1.14.1)可视化管理工具
11-3 Docker与Docker-Compose基础概念
11-4 基于容器的微服务反向代理利器Traefik
11-5 基于Docker-compose与Traefik的容器化部署演示
11-6 Kubernetes基础原理
11-7 基于Kubernetes的容器化部署演示

第12章 “云存储”系统之持续集成部署【快速部署更新,可视化管理】
开发完成并构建容器镜像后, 如何基于git+jenkins+k8s完善持续部署(CI/CD)发布流程, 从而实现一个比较完整的高可用性的云存储系统。

12-1 ubuntu下离线安装harbor1.6
12-2 持续构建之基础概念
12-3 基于gitlab+jenkins+harbor的自动化部署配置演示

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

13-1 课程总结之章节重点及技能树温习

01 Go实战仿百度云盘课程介绍相关推荐

  1. 猿团项目实战-仿途牛旅行APP免费视频课程

    途牛的产品丰富,性价比高,省心便捷,量身定制,双重保障等优势,让广大热爱旅行的朋友对途牛爱不释手,一有旅行的计划,就会选择上途牛.这让途牛这样的旅行APP开发者们更是觉得旅行APP开发是非常重要的. ...

  2. MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  3. 《cocos2d-x手机游戏开发实战》直播课程第一期介绍

    史上最牛的cocos2d-x课程 <cocos2d-x手机游戏开发实战>直播课程第一期 史上最牛的优惠活动: 报名关东升老师iOS会员送cocos2d-x直播课程,而且终身会员价格只要19 ...

  4. ASP.NET Core分布式项目实战(课程介绍,MVP,瀑布与敏捷)--学习笔记

    任务1:课程介绍 课程目标: 1.进一步理解 ASP.NET Core 授权认证框架.MVC 管道 2.掌握 Oauth2,结合 Identity Sercer4 实现 OAuth2 和 OpenID ...

  5. 《C++新经典Linux C++通信架构实战》第1章 课程介绍

    <C++新经典Linux C++通信架构实战>第1章 课程介绍 1.1 本书内容详细介绍 1.1.1 内容总述 1.1.2 为什么选择Linux操作系统平台 1.1.3 讲解规划和学习建议 ...

  6. unity超级马里奥2d游戏开发课程-01课程介绍

    大家好,我是小兵,今天给大家带来Unity开发超级马里奥2d游戏的第1课,课程介绍,你可以在我的个人博客geekape.net上找到完整的课程. 我之前主要是做前端开发工作的,并不是做游戏开发的,但由 ...

  7. 【01】 课程介绍 - 计算机视觉概述

    1.本课学习内容.学习目标 1.1 课程介绍 什么是计算机视觉: 计算机视觉,顾名思义就是针对视觉数据进行研究: 计算机视觉课程的重性: 海量的视觉数据(youtube为例): 介绍讲师,都是李飞飞老 ...

  8. Asp.NET Core2.0 项目实战入门视频课程_完整版

    END OR START? 看到这个标题,你开不开心,激不激动呢? 没错,.net core的入门课程已经完毕了.52ABP.School项目从11月19日,第一章视频的试录制,到今天完整版出炉,离不 ...

  9. Netty入门与实战:仿写微信IM即时通讯系统

    转载自:Netty入门与实战:仿写微信IM即时通讯系统 Netty是互联网中间件领域使用最广泛最核心的网络通信框架,几乎所有互联网中间件或者大数据领域均离不开Netty,掌握Netty是作为初中级工程 ...

  10. 从入门到精通学全套AI 轻松掌握illustrator基础加实战技能视频课程-王诚-专题视频课程...

    从入门到精通学全套AI 轻松掌握illustrator基础加实战技能视频课程-948人已学习 课程介绍         掌握全套AI基础课程,熟练掌握illustrator各项技巧. 基础教学加有趣有 ...

最新文章

  1. ZBrush全面入门学习教程 Schoolism – Introduction to ZBrush
  2. 8800个机器学习开源项目为你精选TOP30!
  3. ASP.net Joyrock异步应用示例、JSON-RPC使用方法
  4. 2021-01-07 matlab数值分析  矩阵特征值与特征向量的计算 改进乘幂法 反幂法
  5. Deepfacelab的填坑之旅
  6. Spring Boot——HTTP访问重定向到HTTPS解决方案
  7. 习题7-2 求一批整数中出现最多的个位数字 (20分)
  8. LeetCode 1727. 重新排列后的最大子矩阵(前缀和+排序)
  9. leetcode 208 python3
  10. 质量不同的球java编程_荐非常经典的java编程题全集-共50题(1-10)...
  11. Dom4j中getStringValue()和getText()用法的区别
  12. 阿里云 部署并开启nodejs应用
  13. Magic Squares
  14. oracle卸载客户端,oracle11g客户端如何完全卸载
  15. 修复 海盗船 k70 lux 未检测到设备(k70 no device detected)
  16. 微控制器STM32L412RBT6,STM32L412CBU6(128KB)MCU+FPU,规格
  17. 精英问题,大家没事可以做一做
  18. AI化身心脏病“专家” 为心脏健康保驾护航
  19. 7种方式企业内部资料共享,你pick谁?
  20. 有道云笔记网页版无法使用方向键

热门文章

  1. keras 的dot、multiply区别
  2. matlab遗传算法函数实例,三个遗传算法matlab程序实例
  3. ICCV7 For AVR 使用教程 Atmega16 单片机
  4. 第三代移动通信系统抗干扰关键技术(转)
  5. 高校学籍管理系统(SQL Server数据库课程设计)
  6. vue项目运用繁体字
  7. 应用密码学:协议、算法与C源程序(学习第二章)
  8. Asp.Net 5.0简介
  9. 史上最简易无人机,仅有一个螺旋桨
  10. Win10系统禁用驱动程序强制签名