CDN 2.4¶
Описание¶
CDN 2.4 дает следующие дополнительные возможности по сравнению с CDN 2.1, 2.2 и 2.3:
- мониторинг состояния служебных соединений (сигналинга) в CDN
- управление состоянием служебных соединений в CDN
Мониторинг состояния служебных соединений (сигналинга) в CDN¶
В CDN 2.4 на каждом узле можно проверить состояние служебных соединений (сигналинга) с другими узлами CDN при помощи REST API или CLI. Таким образом, можно контролировать связность CDN c бэкенда.
Использование REST API¶
REST API запрос /cdn/show_nodes
возвращает текущее состояние и статистику соединения с каждым узлом CDN
[
{
"version": "2.3",
"role": "TRANSCODER",
"inboundConnected": true,
"outboundConnected": false,
"globalState": "ACTIVE",
"processingState": "NEW_STREAMS_ALLOWED",
"id": "192.168.1.64"
},
{
"version": "2.4",
"role": "EDGE",
"inboundConnected": true,
"outboundConnected": false,
"globalState": "ACTIVE",
"processingState": "NEW_STREAMS_ALLOWED",
"connectionStats": {
"lastRtt": 2,
"lastSn": 24,
"lastMessageSentMs": 1592359761801,
"lastACKReceivedMs": 1592359761802,
"maxRtt": 1224,
"inFlightSize": 0
},
"id": "192.168.1.65"
}
]
Параметры¶
Параметр | Описание | Пример |
---|---|---|
inboundConnected | Установлено входящее соединение с данного узла | `true` |
outboundConnected | Установлено исходящее соединение с данным узлом | `false` |
lastRtt | Время доставки последнего пакета, мс | `2` |
lastSn | Номер последнего пакета в последовательности | `24` |
lastMessageSentMs | Метка времени последнего отправленного сообщения, мс | `1592359761801` |
lastACKReceivedMs | Метка времени последнего подтверждения, мс | `1592359761802` | maxRtt | Максимальное время доставки пакета, мс | `1224` |
inFlightSize | Размер текущего отправляемого пакета, байт | `0` |
Отметим, что для соединений с узлами предыдущих версий CDN доступно только состояние соединения: установлено или нет.
Использование CLI¶
Команда интерфейса командной строки v 2
отображает статистику соединений (только для узлов CDN 2.4)
Ip State Inbound Outbound Last rtt Max rtt Last SN In flight
-------------------------------------------------------------------------
192.168.1.39 ACTIVE false true 1 2057 127 0
Управление состоянием служебных соединений в CDN¶
В некоторых случаях, например. при потерях на канале между узлами, связность определенного узла с CDN может быть нарушена. Для восстановления связности может потребоваться сброс и повторная установка соединений сигналинга. В предыдущих версиях CDN это можно было сделать только перезапуском узла. В CDN 2.4 добавлена возможность сброса соединений при помощи REST API. Эта операция не затрагивает медиапотоки, которые уже транслируются через данный узел.
Сброс соединений при помощи REST API¶
REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:
- HTTP:
http://test.flashphoner.com:8081/rest-api/cdn/connection/reset_outbound
- HTTPS:
https://test.flashphoner.com:8444/rest-api/cdn/connection/reset_outbound
Здесь:
test.flashphoner.com
- адрес WCS-сервера8081
- стандартный REST / HTTP порт WCS-сервера8444
- стандартный HTTPS портrest-api
- обязательная часть URL/cdn/connection/reset_outbound
- используемый REST-метод
REST запросы необходимо отправлять на сервер, на котором необходимо сбросить соединение
REST-методы и статусы ответа¶
REST метод | Тело запроса | Статусы ответа | Описание |
---|---|---|---|
`/cdn/connection/reset_inbound` | 200 OK 404 Node not found | Сбросить входящее соединение с указанным узлом | |
`/cdn/connection/reset_outbound` | 200 OK 404 Node not found | Сбросить исходящее соединение с указанным узлом | |
`/cdn/connection/reset_all` | 200 OK | Сбросить все соединения со всеми узлами (добавлено в сборке 5.2.1222) |
Параметры¶
Параметр | Описание | Пример |
---|---|---|
nodeId | Идентификатор (IP-адрес) узла, соединение с которым должно быть сброшено | `192.168.1.65` |
Тонкая настройка служебных соединений¶
Настройки сброса неактивных соединений¶
Если сервер не получает пакеты по служебному соединению, оно может быть сброшено. Эта возможность включается настройками для входящих и исходящих соединений соответственно
По умолчанию, интервал контроля приема пакетов установлен в 60 секунд
Обратная совместимость с CDN 2.0-2.3¶
-
Для соединений с узлами предыдущих версий, статистика не отображается
-
При этом, соединение с узлом предыдущей версии может быть сброшено