【青训营】TSO对象存储 | 青训营笔记

79 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第5篇笔记。

一、抖音背后的存储

首先需要一个客户端,然后有账号,也有评论服务,但核心来说抖音这类app都是UGC,就是用户生产内容的平台。在这条链路上,片源系统承接用户上传的内容,然后审核系统进行审核,最后这些内容通过机器学习打上标签,通过用户历史观看兴趣进行推送。

更细的划分:在片源服务后面将用户上传的视频存储起来,这个用户原始的视频为源视频;然后有转码服务,将源视频转码为不同码率的视频。转码可以适配不同的客户端,转码后再进行一次存储,便于客户端后面的拉取;然后还有一个抽帧服务,将视频抽成不一样的帧,用于审核服务做审核,这里也需要一个存储把这些图片进行存储;最后就是推荐服务了,把对应视频推荐出去,然后客户端就可以拉取观看了。

但是这样存储的数据量太大了。需要寻找一种易用、海量、便宜的存储方式。

二、对象存储

存储系统的分类

单机存储单机数据库分布式数据库分布式存储
文件系统关系型数据库关系型数据库分布式文件系统
Key-Value存储非关系型数据库非关系型数据库对象存储
存储备选海量支持适合数据类型是否入选
单机存储No单机文件K/VNo
单机数据库No少量(半)结构化数据No
分布式数据库Yes大量(半)结构化数据No
分布式存储Yes大数据计算中间结果/视频/文件等Yes

对象存储TOS的优点:

  1. 海量:对象数量无上限
  2. 易用:Resultful HTTP接口,开发极其简单;云原生,按需申请使用;视频/图片相关生态丰富
  3. 便宜:使用普通x86服务器;具备冷热数据分级存储能力,成本更低