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 запросы необходимо отправлять на сервер, на котором необходимо сбросить соединение
/cdn/connection/reset_inbound¶
Сбросить входящее соединение с указанным узлом
Request example¶
POST /rest-api/cdn/connection/reset_inbound HTTP/1.1
Host: localhost:8081
Content-Type: application/json
{
"nodeId":"192.168.1.65"
}
Response example¶
Return codes¶
Code | Reason |
---|---|
200 | OK |
404 | Not found |
/cdn/connection/reset_outbound¶
Сбросить исходящее соединение с указанным узлом
Request example¶
POST /rest-api/cdn/connection/reset_outbound HTTP/1.1
Host: localhost:8081
Content-Type: application/json
{
"nodeId":"192.168.1.65"
}
Response example¶
Return codes¶
Code | Reason |
---|---|
200 | OK |
404 | Not found |
/cdn/connection/reset_all¶
Сбросить все соединения со всеми узлами (добавлено в сборке 5.2.1222)
Request example¶
POST /rest-api/cdn/connection/reset_all HTTP/1.1
Host: localhost:8081
Content-Type: application/json
Response example¶
Return codes¶
Code | Reason |
---|---|
200 | OK |
Параметры¶
Параметр | Описание | Пример |
---|---|---|
nodeId | Идентификатор (IP-адрес) узла, соединение с которым должно быть сброшено |
192.168.1.65
|
Тонкая настройка служебных соединений¶
Настройки сброса неактивных соединений¶
Если сервер не получает пакеты по служебному соединению, оно может быть сброшено. Эта возможность включается настройками для входящих и исходящих соединений соответственно
По умолчанию, интервал контроля приема пакетов установлен в 60 секунд
Обратная совместимость с CDN 2.0-2.3¶
-
Для соединений с узлами предыдущих версий, статистика не отображается
-
При этом, соединение с узлом предыдущей версии может быть сброшено