Skip to content

Как перенаправить клиента на сервер с контентом

Flussonic Media Server может соединиться с другим Flussonic Media Server, получить список работающих и доступных по запросу потоков и перенаправлять клиентов на нужный пир, используя свои кластерные возможности.

Настройка

Создание пира

Чтобы добавить пир во Flussonic Media Server, перейдите на страницу Cluster > Settings. Введите ключ кластера и имя нового пира, а затем нажмите Save.

Параметр cluster_key должен быть одинаковым на всех серверах в кластере.

Flussonic cluster peering

Note

При добавлении пира через Flussonic UI в поле New peer hostname нужно указать адрес без порта. Вы можете указать порт позже, в поле API URL в настройках созданного пира. См. Настройки пира.

Вы также можете добавить пир в конфигурационном файле Flussonic Media Server:

cluster_key abcd;
peer streamer:8081;

Можно задать несколько пиров:

cluster_key abcd;
peer peer1.example.com;
peer peer2.example.com;
peer peer3.example.com;

Все пиры могут принимать различные потоки, Flussonic Media Server будет направлять клиентов на нужный пир.

Статистика пиров

Вы можете посмотреть статистику по потокам, захваченным всеми пирами в кластере, на странице Cluster > Overview.

Cluster overview

Для каждого пира можно посмотреть:

  • Использование CPU
  • Использование памяти
  • Количество подключенных клиентов
  • Количество захваченных потоков
  • Выходной битрейт
  • Процент нагрузки на сетевой интерфейс
  • Время работы сервера (uptime)

Настройки пира

Чтобы посмотреть или изменить настройки отдельного пира, перейдите в раздел Cluster > Settings > нажмите значок редактирования напротив нужного пира.

Откроется страница с настройками пира:

Cluster peer settings

Здесь можно отредактировать следующие настройки пира:

  • API URL – внутренний адрес для общения по локальной сети (может содержать номер порта).
  • Public payload URL – публичный адрес, который показывается клиентам.
  • Private payload URL – внутренний адрес для общения по локальной сети (по умолчанию совпадает с API URL).
  • Fetch timeout – с какой частотой пир будет пытаться получить данные с удаленного сервера по внутреннему API (в миллисекундах).
  • Stale timeout – время, спустя которое удаленные потоки на этом сервере считаются неактивными и не могут использоваться в механизме cluster_ingest.
  • Channel limit – максимальное количество потоков.
  • CPU limit – ограничение на загрузку CPU в процентах.
  • Cluster key – ключ для авторизации при общении между серверами Flussonic. Ключ должен быть одинаковым на всех серверах в кластере.

Внутренние и внешние адреса пиров

Когда серверы Flussonic находятся в локальной сети и в настройках вы используете внутренние адреса (имена хостов), которые необходимы для общения пиров между собой внутри локальной сети, эти внутренние адреса могут быть видны на клиентах при проигрывании потока.

Можно показывать вовне внешние адреса пиров, но при этом разрешить им использовать внутренние адреса для взаимодействия внутри кластера. Для этого укажите публичный адрес пира в поле Public payload URL во вкладке Settings (см. Настройки пира).

Вы также можете добавить в конфигурационном файле в настройках каждого пира опцию public, в которой будет указан внешний адрес этого пира:

cluster_key abcd;
peer streamer:8081 {
    public streamer.public;
}

При перенаправлении на streamer1.example.com будет использоваться тот же протокол, HTTP или HTTPS, который указан в настройках.

Перенаправление

Flussonic Media Server будет перенаправлять клиентов на другой сервер, когда они запрашивают поток.

Между пиром (peer) и источником (source) существует очень важное различие, потому что source спроектирован для копирования видео по выделенному каналу, от источника (origin) на вещающий сервер (edge).

Пиринг спроектирован для случаев, когда клиент может получать видео от любого сервера в группе, а сервера (пиры) в группе общаются друг другом, сообщая какие потоки они имеют.

Когда клиент подключается по HLS, HTTP MPEG-TS, RTSP, RTMP или открывает embed.html на любой сервер в группе, он может быть перенаправлен на другой сервер, где этот поток действительно находится.