Описание
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 show-connections
отображает статистику соединений (только для узлов 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
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-метод | Пример тела REST-запроса | Статусы ответа | Описание |
|---|---|---|---|
/cdn/connection/reset_inbound | {
"nodeId":"192.168.1.65"
}
| 200 – OK 404 - Node not found | Сбросить входящее соединение с указанным узлом |
/cdn/connection/reset_outbound | {
"nodeId":"192.168.1.65"
}
| 200 – OK 404 - Node not found | Сбросить исходящее соединение с указанным узлом |
| /cdn/connection/reset_all | 200 – OK | Сбросить все соединения со всеми узлами (добавлено в сборке 5.2.1222) |
Параметры
| Параметр | Описание | Пример |
|---|---|---|
| nodeId | Идентификатор (IP-адрес) узла, соединение с которым должно быть сброшено | 192.168.1.65 |
Тонкая настройка служебных соединений
Настройки сброса неактивных соединений
Если сервер не получает пакеты по служебному соединению, оно может быть сброшено. Эта возможность включается настройками для входящих и исходящих соединений соответственно
cdn_inbound_ws_read_socket_timeout=true cdn_outbound_ws_read_socket_timeout=true
По умолчанию, интервал контроля приема пакетов установлен в 60 секунд
cdn_inbound_ws_read_socket_timeout_sec=60 cdn_outbound_ws_read_socket_timeout_sec=60
Обратная совместимость с CDN 2.0-2.3
1. Для соединений с узлами предыдущих версий, статистика не отображается
2. При этом, соединение с узлом предыдущей версии может быть сброшено