...
Сервер может иметь одну из двух ролей
1. Origin: служит источником потоков для других серверов в CDN. Может раздавать как опубликованные на нем потоки, так и потоки, которые он забирает с других серверов.
2. Edge: может забирать потоки с Origin-серверов, при этом не раздает свои (локальные) потоки другим сереврамсерверам.
При этом потоки не раздаются принудительно, Edge-сервер забирает определенный поток с Origin только по запросу пользователя из браузера или мобильного приложения.
...
Параметр | Значение по умолчанию | Тип | Описание |
---|---|---|---|
cdn_enabled | false | Boolean | Включить/отключить CDN |
cdn_ip | Empty | String | Адрес сервера в CDN |
cdn_nodes_resolve_ip | false | Boolean | Разрешать имена серверов в IP-адреса |
cdn_point_of_enryentry | Empty | String | Адрес сервера-точки входа в CDN для данного сервера. Если сервер выполняет роль Origin, эту настройку не следует указывать равной IP адресу или имени этого сервера |
cdn_port | 8084 | Int | Номер порта для CDN |
cdn_role | edge | String | Роль сервера в CDN: origin - источник потоков для других серверов в CDN edge - может получать потоки с других серверов |
...
REST-методы и статусы ответа
REST-метод | Пример тела REST-запроса | Пример тела REST-ответа | Статусы ответа | Описание | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
/cdn/show_routes |
| 200 – OK 500 – Internal Server Error | Показать активные маршруты CDN |
Параметры
Описание | Пример |
---|---|
Идентификатор маршрута | 1-origin2.flashphoner.com-2 |
Имя потока в CDN | stream1 |
Удаление остановленных серверов из списка узлов
...
Если в наборе кодеков подписчика есть такой же кодек, как тот, что используется для публикации, то для воспроизведения будет использован этот кодек (вне зависимости от его приоритета). В противном случае, для воспроизведения будет использован приоритетный кодек подписчика, и будет осуществляться транскодинг.
Краткое руководство по тестированию
Подготовка к тестированию
1. Для тестирования используем:
Настройка таймаутов на чтение и запись в CDN для доставки RTMP потоков
Если CDN используется преимущественно для публикации и воспроизведения RTMP потоков, и по каким-либо причинам на серверах CDN отключены посылки Keep Alive пакетов (например, публикующие и воспроизводящие клиенты не поддерживают Keep Alive), для контроля состояния RTMP-соединений необходимо настроить таймауты на чтение и запись:
1. Таймаут на чтение может применяться на Origin-серверах, на которые производится только публикация RTMP-потоков без воспроизведения их непосредственно с сервера
Code Block | ||
---|---|---|
| ||
keep_alive.algorithm=NONE
rtmp.server_read_socket_timeout=120 |
2. Таймаут на запись может применяться на Edge-серверах, которые используются только для воспроизведения CDN-потоков
Code Block | ||
---|---|---|
| ||
keep_alive.algorithm=NONE
rtmp.server_write_socket_timeout=120 |
3. Таймаут на чтение и запись может применяться и на Origin, и на Edge-серверах. При этом возможно как подключение подписчиков для воспроизведения потока, так и публикаторов.
Code Block | ||
---|---|---|
| ||
keep_alive.algorithm=NONE
rtmp.server_socket_timeout=120 |
Краткое руководство по тестированию
Подготовка к тестированию
1. Для тестирования используем:
- два WCS сервера;
- веб-приложение Two Way Streaming для публикации потока
- веб-приложение Player для воспроизведения потока.
...
При этом на странице воспроизведения Edge-сервера проигрывание потока также остановится с вывоом сообщения "Stopped by publisher stop"
Ограничения
1. Не рекомендуется публиковать поток с одним и тем же именем на двух Origin серверах одной CDN
2. Поток, опубликованный на одном из Origin серверов, следует забирать с этого же Origin или Edge сервера, но не с другого Origin сервера в той же CDN.
Известные проблемы
1. Изменение настройки кодеков на Edge сервере может приводить к возрастанию нагрузки на сервер в результате включения транскодинга
...