Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Описание

CDN 2.3 дает следующие дополнительные возможности по сравнению с CDN 2.1 и 2.2:

  • предотвращение двойного транскодирования одного и того же потока в CDN

Предотвращение двойного транскодирования одного и того же потока в CDN

CDN 2.3 позволяет ограничить двойное транскодирование одного и того же входящего в CDN потока на двух и более транскодерах одной группы. Такое может происходить в крупных CDN с большими объемами входящего и исходящего медиа трафика при одновременном подключении большого числа подписчиков. В результате создается излишняя нагрузка на транскодеры, которая может приводить к выходу серверов из работы.

Для решения этой проблемы, в каждой группе выделяется специальный узел с ролью Controller, который получает информацию о потоках от всех узлов CDN и собирает ее текущее состояние. Узлы с ролью Edge должны обращаться к узлу Controller, при его наличии, для определения маршрута воспроизведения потока. Если поток уже транскодируется на каком-либо из узлов Transcoder, узел Controller не позволяет строить маршрут для этого потока через другой транскодер. Если узел Controller недоступен, Edge строит маршрут для воспроизведения потока по алгоритму CDN 2.1.

Узел Controller не должен использоваться для публикации или воспроизведения потока.

Настройка

Роль Controller назначается узлу при помощи настройки

cdn_role=controller

На узле Edge определяется таймаут запроса к узлу Controller при помощи параметра

cdn_controller_request_timeout=5000

Таймаут задается в миллисекундах, по умолчанию значение установлено в 5000 мс.

Длительность кэширования ответов узла Controller на запросы к нему задается на узле Edge при помощи параметра

cdn_controller_response_cache_expire=10000

Кэширование задается в миллисекундах, по умолчанию значение установлено в 10000 мс.

Настройки таймаута и кэширования должны задаваться только на Edge узлах.

Проверка двойного транскодирования при помощи REST API

Проверка двойного транскодирования проводится при помощи REST запроса к узлу Edge.

REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:

  • HTTP: http://test.flashphoner.com:8081/rest-api/cdn/show_redundant_transcodings
  • HTTPS: https://test.flashphoner.com:8444/rest-api/cdn/show_redundant_transcodings

Здесь:

  • test.flashphoner.com - адрес WCS-сервера
  • 8081 - стандартный REST / HTTP порт WCS-сервера
  • 8444 - стандартный HTTPS порт
  • rest-api - обязательная часть URL
  • /cdn/show_redundant_transcodings - используемый REST-метод

REST запросы необходимо отправлять на Edge сервер.

REST-методы и статусы ответа

REST-метод

Пример тела REST-запроса

Пример тела REST-ответа

Статусы ответа

Описание

/cdn/show_redundant_transcodings




{"test6":"192.168.1.17,192.168.1.18"}

200 – Redundant transcoding found

404 - No redundant transcoding

Проверить двойное транскодирование

Параметры ответа

Описание

Пример

Имя потока

test6

Список узлов, на которых транскодируется поток192.168.1.17,192.168.1.18

Обратная совместимость с CDN 2.2, 2.1, 2.0

С точки зрения узлов CDN предыдущих версий, узел Controller представляет собой Origin сервер

Узлы CDN 2.1 буду выбирать маршруты воспроизведения потоков без участия узла Controller, даже если он присутствует в группе.

Ограничения

Для того, чтобы узел Edge выбирал маршрут воспроизведения потоков при помощи узла Controller, эти узлы должны принадлежать к одной группе, и эта группа должна быть определена явно в настройках CDN:

cdn_groups=g1

Узел Controller строит маршруты только через транскодеры своей группы.

Узел Controller, для которого группа не определена, не участвует в определении маршрутов.

  • No labels