Skip to end of metadata
Go to start of metadata

Описание

CDN 2.4 дает следующие дополнительные возможности по сравнению с CDN 2.12.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. При этом, соединение с узлом предыдущей версии может быть сброшено