2008-11-22 4 views
6

Какие конструктивные соображения должны быть приняты при написании программного обеспечения для систем распространения контента, таких как управление синхронизацией и распределением данных, перенаправление загрузок на ближайшие серверы и т. Д.?Content Delivery Сетевые алгоритмы, примеры, код

Я также ищу примеры программ с открытым исходным кодом CDN (сети доставки контента). Я могу подумать о двух проектах: CoralCDN и OpenCDN

Обратите внимание, что для CDN есть больше, чем просто пропускная способность оборудования. CDN представляет собой комбинацию программного обеспечения и.

Что бы я хотел сделать, это программное обеспечение для потокового мультимедиа, а также статических активов. Мне сложно понять, как правильно синхронизировать потоковые медиа на серверах (поскольку доступ к файлам может быть довольно случайным), в то время как статические активы кажутся немного проще, поскольку это одноразовый запрос.

+0

Повторное открытие, потому что это связано с программированием. CDN - это не просто куча сбалансированных по нагрузке веб-серверов, особенно для CDN, которые обслуживают больше, чем HTTP (подумайте о потоковых видео CDN). – 2008-11-22 17:14:38

+0

Закрытие, потому что теперь дубликат http://stackoverflow.com/questions/311538/open-source-cdn – 2008-11-22 17:16:30

+0

sry, я не смог открыть его сам, поэтому создал дублированный пост. thx для ur help – joshjdevl 2008-11-22 17:17:51

ответ

7

Вы понимаете, что ценность сети доставки контента имеет чисто количество серверов, которыми они владеют, и близость серверов к конечным пользователям?

Вы уверены, что идете по правому пути?

7

Хотя я не знаю каких-либо проектов с открытым исходным кодом, может быть, стоит подвести итог тому, что такое CDN на самом деле? В конце концов, просто взятие нескольких веб-серверов нигде не приведет вас.

Основные проблемы, которые CDN Программное обеспечение должно решить:

  • синхронизации. Таким образом, у вас есть все ваши опрятные фермы в США, Европе и Азии, но как вы убедитесь, что все они имеют одинаковые версии файлов, которые вы пытаетесь выполнить? И если у одной из ферм нет текущей версии, как вы скажете балансировщику нагрузки, какую ферму использовать вместо этого?
  • Заготовка леса. В CDN вы обычно хотите оплатить свой клиент, поэтому вам нужно измерить трафик и доступ к файлам. Но с несколькими фермами и несколькими веб-серверами в каждой ферме вам необходимо как-то централизовать ведение журнала
  • Аутентификация. В конце концов, CDN - это не просто веб-сервер, доставляющий HTTP-контент всем. Что делать, если у вас есть CDN для потоковой передачи видео, что фактически ограничивает доступ только к определенным пользователям?
  • Балансировка нагрузки. Хотя это обычно делается отдельно, это также относится к части синхронизации. Поэтому я являюсь пользователем из Южной Кореи, пытающимся получить доступ к контенту. Балансер нагрузки узнает, что Ферма в Сеуле является ближайшей, но, к сожалению, у Сеульской фермы пока нет контента. Таким образом, CDN и Load Balancer должны выяснить, какая ближайшая ферма имеет контент. Давайте посмотрим ... У Парижа, Франции и Лос-Анджелеса, США есть контент. Какой из них должен служить?

Каждая проблема сама по себе не является проблемой, исключающей CDN, но CDN Software по сути является комбинацией этих методов. Любые другие, что я забыл?

Из комментариев:

  • Определение того, какие файлы должны быть воспроизведены где.Японский Центр обновления Windows может быть очень популярен в Японии и, возможно, в некоторых других азиатских странах, но у Европы и США, возможно, меньше запросов к нему, поэтому этот файл, возможно, не нужно реплицировать через каждую ферму в CDN.