Meshwork

Meshwork — механизм объединения серверов Perfect Streamer в единую сеть узлов. Узлы одного домена автоматически находят друг друга и обмениваются служебной информацией по gossip-протоколу, характерному для децентрализованных сетей. Объединение узлов даёт три возможности:

  • Живой статус узлов. На любом узле в админке видно состояние всех остальных узлов сети: кто на связи, кто молчит, кто за NAT, когда был последний контакт. Открывать каждый сервер отдельно не нужно. Узел, переставший обмениваться данными, переходит в состояние offline — это сразу видно на всех узлах.

  • Общий каталог ресурсов (библиотека). Запущенные на узлах входы и выходы UDP, RTP, Pro-MPEG COP3/RTP+FEC (SMPTE 2022-1/2), RIST, PS1 и SRT попадают в общий каталог, видимый на всех узлах домена (Общий каталог ресурсов): по нему можно подобрать свободный адрес и порт, не пересечься по мультикасту, найти, где уже отдаётся или принимается нужный поток. В пределах домена пир между узлами поднимается по автологину — без ручного ввода логинов и паролей с обеих сторон.

  • Разнос оповещений по домену. Алерты одного узла видны на всех узлах того же домена: дежурный может следить за всей площадкой из одного окна. Внешние оповещения достаточно настроить на одном узле домена: он доставляет и те алерты других узлов, которые разносятся по домену (Разнос оповещений по домену).

Meshwork — это слой видимости и согласования. Он не переносит потоки между серверами и не меняет конфигурацию вещания автоматически. Схему доставки вы по-прежнему строите сами, а Meshwork помогает её планировать и наблюдать.

Схема топологии Meshwork: узлы домена в полной сетке связей, узел за NAT как инициатор, super-node в двух доменах без их соединения.

Топология Meshwork: узлы одного домена образуют полную сетку прямых связей; узел за NAT подключается как инициатор; super-node состоит в двух доменах, но не соединяет их между собой.

Ключевые понятия

Узел

Один сервер Perfect Streamer в сети. У каждого узла есть короткое уникальное имя, по которому его узнают остальные. Без имени и секрета подписи узел в сети не участвует.

Домен

Логическая группа узлов и одновременно граница изоляции. Внутри одного домена узлы автоматически находят друг друга, делят общий каталог ресурсов и разносят оповещения. Между разными доменами обмена нет — домены независимы.

Автообнаружение (mesh)

Узлам достаточно задать одинаковый домен и хотя бы одну связь — дальше они находят друг друга сами, без ручного перечисления каждого соседа. В пределах домена выстраивается полная сетка прямых связей: все узлы домена становятся прямыми соседями, промежуточных цепочек не строится.

Связь прописывается по HTTP, но дальнейший обмен идёт по HTTPS. Для публичной сети настроенный HTTPS обязателен; для внутренней сети (intranet address) HTTPS не обязателен.

Явная связь

Соседа можно указать вручную — адресом, именем и общим секретом. Такая связь работает всегда, в том числе по обычному HTTP, и не требует общего домена. Подходит для точечного соединения двух площадок или подключения узла за NAT.

Super-node

Один узел может одновременно состоять в нескольких доменах. Он видит ресурсы и узлы каждого своего домена, но не соединяет домены между собой — изоляция сохраняется. В основном домене такой узел — полноправный участник сети; в дополнительных он связан только с соседями из своего списка и видит остальные узлы этих доменов через них. В карте сети такой узел помечается как super.

Оповещения (алерты)

Встроенная служба оповещений следит за потоками, оборудованием узла, приёмом DVB и записью DVR и поднимает алерты, когда что-то выходит за заданные пределы. В сети с включённым разносом на каждом узле виден сводный набор алертов всего домена (см. Оповещения (алертер)).