这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记,此系列笔记主要记录我们队伍在开发抖音项目过程中遇到的一些问题以及思考
项目优化
数据库优化
我们小组在选取数据库时,选取了MySQL做数据库,但由于项目最终是部署在服务器上,最后决定将一切可以拆分出去的第三方组件都拆分出去,最后使用了阿里云的云上数据库(RDS),这样就可以把数据库这部分的开销拆分出去了,而且这样做解决了小组人员,人手一个不同版本的数据库或数据表,也保持了数据一致性,可以统一进行管理
上传视频投稿优化
在上传视频投稿的方案选择上,最开始是打算上传至服务器本地的,但在上完青训营Tos 对象存储实战的课程之后,结合我们小组打算将所有第三方组件拆分出去的想法,最后选择使用阿里云的OSS做对象存储,而且阿里云的OSS也很好的支持截取视频帧的功能,还支持了许多功能,文档也十分齐全,详细情况请见下方文档链接 help.aliyun.com/product/318…
对象存储介绍
分布式存储选型对比: 对象存储的优势
回顾存储体系
之前课程介绍过如下存储体系分类:
- 单机存储
- 分布式存储
- 单机/分布式数据库
这里会重温下各类存储适用的场景和范围,并重点介绍分布式存储的分类:
- 分布式文件系统:当前业界开源代表是HDFS
- 对象存储: 本次课程介绍的TOS就是其中代表
HDFS vs 对象存储
-
是否Cloud Native Storage:
- 云原生存储开箱即用,极大解除了运维运营负担,生态体系依托云构建,丰富健全
- 对象存储是当前各大云厂商王牌存储产品
-
接入难易程度对比:
-
Data Model差异:
- HDFS:伪Posix File System Interface, Directory/File的数据组织形式
- 对象存储:扁平的逻辑命名空间, Bucket/Key的数据组织形式
- Bucket/Key数据组织形式优势:容易理解,使用心智负担小,贴合业务需求
-
使用接口差异:
- HDFS:Mkdirs/Create/Append/Delete/Get等文件接口
- 对象存储: GET/PUT/HEAD/DELETE等Restful HTTP接口
- HTTP接口的优势:开发简单,分享方便,可无缝接入CDN
-
-
其他对比:
- 可扩展性:对象存储可扩展性更强,支持无限容量
- 成本:对象存储成本更低
对象存储的用法
基本接口
- Restful风格简介:简单介绍Restful风格的形式和优点
- GET:获取对象内容
- PUT:下载对象内容
- DELETE:删除对象内容
- HEAD:获取对象元信息
- MultiPartUpload接口:针对大对象弱网环境上传的优化
对象存储的好处
以上说明性文字都转自青训营对象存储课程预习内容