去哪里了解Web架构? Youtube的例子?

我试图build立一个类似于YouTube的networking应用程序(这不是一个closures),但我想我不知道如何在互联网上很好地提供video。

我知道如何build立常规的数据库驱动的Web应用程序,但没有像Youtube的可扩展性。 我之前构build的所有应用程序都已经在一台服务器上运行,文件与networking服务器存储在同一个服务器上。

如何将应用程序服务器从媒体服务器的文件存储中分离出来? 我或多或less想要四台机器(机器群集):

  1. 应用程序服务器 – 呈现网页,处理用户上传,将用户的Flash播放器链接到正确的媒体服务器等。
  2. 数据库碎片 – 存储用户信息,检查collections夹等
  3. 文件存储 – 存储媒体文件
  4. 媒体服务器 – 提供媒体文件

我怎么把所有这一切钩起来? 我应该利用哪些技术? 我去哪里了解更多关于构build这个?

Youtube的embedded式闪存如何工作? 我想在其他网站上embedded我的Flash播放器,并将其与我的架构绑定。

注意:我已经看过: http : //highscalability.com/youtube-architecture

但是我仍然没有把这些东西联系起来的整体情况。 如果有人能够从高层次解释这些东西是如何工作的?

是否有专门的客户服务器在内部运行,以便在应用程序服务器,文件存储等之间对所有这些东西进行洗牌。是否通过使用JSON的HTTP,这里发生了什么?

谢谢!

如何将应用程序服务器从媒体服务器的文件存储中分离出来?

您使用像OCFS2这样的集群文件系统: http : //oss.oracle.com/projects/ocfs2/

SAN存储,OCFS2,每个应用程序服务器都通过iSCSI安装共享文件系统。

更具有异国情调的解决scheme是由LiveJournal使用的MogileFS: http ://www.danga.com/mogilefs/

干杯

那么,它们是如何融合在一起的呢? 关于如何构build您所描述的types的系统,真正依赖于哪个特定的应用程序,您所熟悉的以及需要扩展的程度,有太多的select。

你可以做的最好的是看看所有用于高度可扩展的网站的不同软件,如果你能够阅读教程,文档和看看真实的实现。 看一下像ZeroMQ这样的消息软件,或者其他基于AMQP的软件。 查看不需要手动分片和数据库规范化的可伸缩数据存储。 你可以阅读的东西有很多,可以让你了解一切事物是如何组合在一起的,你可以对整个系统进行适当的鸟瞰。