【问题标题】:Where to go to learn about web architecture? Youtube example? [closed]去哪里学习网络架构?优酷的例子? [关闭]
【发布时间】:2009-08-14 06:40:11
【问题描述】:

我正在尝试构建一个类似于 Youtube 的网络应用程序(它不是仿冒品),但我想我不知道如何很好地在互联网上提供视频。

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

如何将应用服务器与文件存储与媒体服务器解耦?

我或多或少想要 4 台机器(机器集群)

1.) 应用服务器 -- 展示网页、处理用户上传、将用户的 Flash 播放器链接到正确的媒体服务器等。

2.) 数据库分片 -- 存储用户信息、查看收藏等

3.) 文件存储 -- 存储媒体文件

4.) 媒体服务器 -- 提供媒体文件

如何将所有这些联系在一起?我应该利用哪些技术?我在哪里可以了解有关构建此架构的更多信息?

Youtube 的可嵌入 Flash 是如何工作的?我想将我的 Flash 播放器嵌入到其他网站,并将其与我的架构相结合。

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

但我仍然不了解这些东西是如何联系在一起的。

如果有人可以用高级术语解释所有这些东西是如何工作的?

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

谢谢

【问题讨论】:

  • 我认为架构位可能会在 ServerFault 上得到更好的答案 - 只是一个想法。
  • 我刚发了,有人告诉我发...
  • 因顺丰精确复制而关闭;实际上不能使用“exact dup”,也不想第二次推送到SF,所以使用了NPR。

标签: django web-services architecture


【解决方案1】:

我推荐的两本书是:

后者由 flickr 的工程总监负责。不是 youtube,但我想你会发现它很有启发性。

除此之外,High Scalability 博客是案例研究和收集智慧的良好来源,所有这些都为进一步探索提供了良好的起点。

【讨论】:

    【解决方案2】:

    从雇用合适的人开始;如果您雇用聪明人,他们将能够提出这些问题的答案,而且还会出现更多问题。

    另外,从您计划最初运营的规模开始。不要计划不需要的可扩展性。即使您在自己的领域非常成功,您也不会制作另一个 Youtube。

    可扩展性的开发和维护成本很高——非常昂贵。如果您不需要它,它将耗尽您的资源并不必要地限制您的开发人员。仅仅为高性能系统构建一个可靠的测试环境往往是一项艰巨的工作,而这样的系统需要多个这样的环境。

    【讨论】:

    • 好吧,我想我的第一个问题是,我已经关闭了数据库和应用服务器的东西,但是如果我需要 Flash 访问的大型文件存储库,我该怎么做?
    最近更新 更多