Architecture 内存缓存/CDN在youtube等音乐流网站中的角色?

Architecture 内存缓存/CDN在youtube等音乐流网站中的角色?,architecture,streaming,Architecture,Streaming,我相信像youtube这样的音乐流网站必须使用sharded DB(基于视频类别等标准)来进行负载分配和高可用性。但对于这样的实时/流式传输,我认为从io/DB读取是行不通的。它们是否也将所有视频存储在内存中(如memcache集群中),还是只保存流行视频 除此之外,CDN是否还缓存所有视频?例如:-如果纽约用户一天观看100万个视频,如果找不到视频,他们将被缓存在纽约CDN服务器中(比如说,对上限大小有一些限制) 然后只点击Web服务器?视频文件是非常繁重的内容,显然它们存储在文件系统中或一些

我相信像youtube这样的音乐流网站必须使用sharded DB(基于视频类别等标准)来进行负载分配和高可用性。但对于这样的实时/流式传输,我认为从io/DB读取是行不通的。它们是否也将所有视频存储在内存中(如memcache集群中),还是只保存流行视频

除此之外,CDN是否还缓存所有视频?例如:-如果纽约用户一天观看100万个视频,如果找不到视频,他们将被缓存在纽约CDN服务器中(比如说,对上限大小有一些限制)
然后只点击Web服务器?

视频文件是非常繁重的内容,显然它们存储在文件系统中或一些类似文件系统的软件层上。另一件事是如何存储视频元数据、用户信息、统计数据等。通常,这类系统使用不同的数据源和数据库

例如,视频文件及其缩略图可以存储在文件系统中。元信息,如文件标题、描述、关键字、文件位置等—在键值存储(面向列的数据库)中。此类数据库速度快,易于扩展。YouTube视频链接的格式为
www.YouTube.com/watch?v=
,其中代码是视频的唯一键。在搜索、统计、计费等方面,他们显然使用了更适合这些目的的其他数据源

据此,Youtube使用MySql数据库。但显然,为了获得良好的性能、可用性和可扩展性,他们使用它时有很多限制和调谐选项

CND就像是处理高负载地理分布静态流量的标准方法。几乎所有大型云提供商,如AWS、Microsoft Azure等,都将CND作为一项服务提供,您只需配置CND即可。当然,你可以建立自己的,有很多解决方案


<>所以,如果你想实现自己的视频托管,你需要考虑如何存储视频和相关信息,如何处理你的流量等等。对于简单的解决方案,它可以是一个简单的关系数据库或文档数据库,即文件系统+CDN。

视频文件是非常繁重的内容,显然它们存储在文件系统中或某些软件层上,这些软件层与文件系统类似
为什么不将视频文件也存储在DB中呢。将其存储在文件系统中比存储在DB中有什么优势?小到几KB的BLOB可以存储在DB中,而大的BLOB几乎永远不会。有很多关于这个的帖子。比如说这些,,