This post is also available in: Английский
В мультимедийных Интернет проектах использование базовых средств сетевой балансировки нагрузки между видео серверами, как правило, не эффективно и даже ограничивает функциональные возможности. Предлагаемая в статье архитектура построения сети доставки контента позволит эффективно решить данную задачу.
Специалисты нашей компании, имеющие большой опыт работы с серверными продуктами компании Adobe, разработали систему балансировки нагрузки, которая берет на себя задачи по распределению запросов пользователей на получение видео контента между Flash Media серверами (в роли которых могут быть продукты других производителей), заставляя их работать в едином кластере (возможно, географически распределенном). Решение дает возможность легкого и быстрого масштабирования системы видео вещания портала.
Логическая схема решения приведена ниже (балансировка нагрузки при схеме Edge/Origin):
Возможные варианты реализации TCP-балансировки:
- аппаратное решение с поддержкой TCP Load Balancing (Cisco,Juniper,3COM)
- програмный продукт (Haproxy http://haproxy.1wt.eu/)
- DNS Round-Robin балансировка
Самым надежным и производительным решением, безусловно, будет использование аппаратного балансировщика, который к тому же может выполнять и функцию защиты от DoS/DDoS-атак. Однако, если требуется выполнить быструю кластеризацию балансировщиков Haproxy может отлично справиться с этим, для его интеграции подойдет практически любой сервер под управлением OS Linux/Solaris.
Первый запрос от плеера на воспроизведение видео поступает на TCP балансировщик, который по определенному правилу производит его перенаправление на один из серверов Flash Load Balancer. Flash Load Balancer, основываясь на имеющейся статистике по загруженности Edge-серверов, наличию данных в кеше и географическому положению пользователя, подбирает оптимальный сервер и возвращает ответ на запрос плеера в виде RTMP Redirect. В ответе содержится адрес edge-сервера, с которым инициируется соединение и передается RTMP-поток.
Система в автономном режиме производит оценку загрузки и доступности EDGE-серверов по следующим параметрам:
- Количество установленных соединений
- Наличие требуемого файла в кеш-системе
- Время ответа сервера на запрос
- ICMP check, TCP Handshake проверки
- Количество процессов, стоящих в очереди планировщика ядра системы
Балансировщик нагрузки Flash Media Balancer представляет из себя Flash Media Interactive Server 4, собирающий статистику со всех Flash Media серверов, отдающих контент. Когда Flash видео плеер клиента отправляет запрос на воспроизведение видео, он попадает на систему балансировки нагрузки, которая на основании данных по загруженности серверов в ферме и их работоспособности, наличию запрошенных данных в кеше, географическому положению пользователя, перенаправляет его на наиболее подходящий Flash Media сервер. Интеллектуальная балансировка нагрузки позволяет обеспечить максимальное качество восприятия для пользователей и существенно снизить вероятность сбоя при доставке.
Наибольшая эффективность системы доставки видео контента возможна лишь при подключении пользователей к тем серверам, где контент есть в кеше. Типичный пример — вещание эксклюзивной рекламной кампании, когда практически все пользователи видят один рекламный видео клип. Если пользователи будут получать контент из кеша ближайших серверов, то для обслуживания потребуется существенно меньше серверных мощностей. Эту задачу успешно решает наш балансировщик.
Основные функциональные возможности Flash Media Balancer:
- балансировка нагрузки между Flash Media серверами фермы:
- по загруженности серверов
- по наличию видео в кеше
- по географическому признаку
- контроль работоспособности серверов фермы
- интеллектуальный механизм мониторинга Flash Media серверов
- возможность интеграции с CDN операторами (например, отдача премиум видео с CDN)
- система статистики
Система спроектирована таким образом, чтобы обеспечить простоту и легкость интеграции в существующую инфраструктуру.
Часто в проектах требуется ограничение доступа к определенному видео контенту в зависимости от географического положения зрителя (например, при наличии прав на трансляцию в определенной стране или регионе). В этом случае модуль авторизации, установленный на каждом отдающем контент Flash Media сервере, при попытке получения контента проводит дополнительную авторизацию по географическому признаку.
PS
Подобные алгоритмы используются в CDN сетях при оптимизации использования вычислительных емкостей. Надеемся они будут полезны и Вам.