7

在为内容分发系统编写软件时必须考虑哪些设计考虑,例如管理数据的同步和分发、将下载重定向到最近的服务器等等?

我也在寻找开源 CDN(内容交付网络)软件的示例。我能想到两个项目,CoralCDNOpenCDN

请注意,CDN 不仅仅是硬件带宽。CDN 是软件硬件的组合。

我想要的是流媒体和静态资产的软件。我无法弄清楚如何在服务器之间正确同步流媒体(因为文件访问可能相当随机),而静态资产似乎更容易一些,因为它是一次性请求。

4

3 回答 3

7

您是否意识到内容交付网络的价值纯粹在于他们拥有的服务器数量以及服务器与最终用户的接近程度?

你确定你走的是正确的道路吗?

于 2008-11-22T15:58:57.403 回答
7

虽然我不知道任何开源项目,但也许值得总结一下 CDN 实际上是什么?毕竟,仅仅使用一堆 Web 服务器并不能带你到任何地方。

CDN软件要解决的关键问题:

  • 同步。因此,您在美国、欧洲和亚洲拥有所有整洁的农场,但是您如何确保它们都具有您要提供的文件的相同版本?如果其中一个农场没有当前版本,你如何告诉负载均衡器使用哪个农场?
  • 记录。在 CDN 中,您通常希望向客户计费,因此您需要衡量流量和文件访问量。但是对于多个场和每个场中的多个 Web 服务器,您需要以某种方式集中日志记录
  • 验证。毕竟,CDN 不仅仅是向所有人提供 HTTP 内容的 Web 服务器。如果您有一个用于视频流的 CDN,实际上只限制了某些用户的访问权限,该怎么办?
  • 负载均衡。虽然这通常是单独完成的,但这也链接到同步部分。所以我是来自韩国的用户,试图访问这些内容。负载均衡器发现首尔的农场是最近的 - 但不幸的是,首尔的农场还没有内容。所以 CDN 和负载均衡器需要弄清楚最近的有内容的 Farm 是什么。让我们看看......法国巴黎和美国洛杉矶都有内容。应该服务哪一个?

每个问题本身都不是 CDN 独有的问题,但 CDN 软件本质上是这些技术的组合。还有其他我忘记了吗?

从评论:

  • 确定哪些文件需要复制到哪里。日语 Windows 更新可能在日本和其他一些亚洲国家/地区非常受欢迎,但欧洲和美国可能对它的请求较少,因此此文件可能不需要在 CDN 中的每个场中复制。
于 2008-11-22T17:35:05.587 回答
3

CDN 不是软件。请至少谷歌或在维基上寻找东西。 http://en.wikipedia.org/wiki/Content_Delivery_Network

于 2008-11-22T16:09:27.977 回答