Meshwork¶
Meshwork — механизм объединения серверов Perfect Streamer в единую сеть узлов. Узлы одного домена автоматически находят друг друга и обмениваются служебной информацией по gossip-протоколу, характерному для децентрализованных сетей. Объединение узлов даёт три возможности:
Живой статус узлов. На любом узле в админке видно состояние всех остальных узлов сети: кто на связи, кто молчит, кто за NAT, когда был последний контакт. Открывать каждый сервер отдельно не нужно. Узел, переставший обмениваться данными, переходит в состояние offline — это сразу видно на всех узлах.
Общий каталог ресурсов (библиотека). Запущенные на узлах входы и выходы UDP / RTP / Pro-MPEG / RIST / PS1 / SRT попадают в общий каталог, видимый на всех узлах домена: удобно подобрать свободный адрес и порт, не пересечься по мультикасту, найти, где уже отдаётся или принимается нужный поток. В пределах домена пир между узлами поднимается по автологину — без ручного ввода логинов и паролей с обеих сторон.
Разнос оповещений по домену. Алерты одного узла видны на всех узлах того же домена: дежурному достаточно одного окна, чтобы следить за всей площадкой. Внешние оповещения достаточно настроить на одном узле домена — уведомления будут приходить обо всех узлах этого домена.
Meshwork — это слой видимости и согласования: он не переносит потоки между серверами и не меняет конфигурацию вещания автоматически. Схему доставки вы по-прежнему строите сами, а Meshwork помогает её планировать и наблюдать.
Топология Meshwork: узлы одного домена образуют полную сетку прямых связей; узел за NAT подключается как инициатор; super-node состоит в двух доменах, но не соединяет их между собой.¶
Ключевые понятия¶
- Узел
Один сервер Perfect Streamer в сети. У каждого узла есть короткое уникальное имя, по которому его узнают остальные. Без имени и секрета подписи узел в сети не участвует.
- Домен
Логическая группа узлов и одновременно граница изоляции. Внутри одного домена узлы автоматически находят друг друга, делят общий каталог ресурсов и разносят оповещения. Между разными доменами обмена нет — домены независимы.
- Автообнаружение (mesh)
Узлам достаточно задать одинаковый домен и хотя бы одну связь — дальше они находят друг друга сами, без ручного перечисления каждого соседа. В пределах домена выстраивается полная сетка прямых связей: все узлы домена становятся прямыми соседями, промежуточных цепочек не строится.
Связь прописывается по HTTP, но дальнейший обмен идёт по HTTPS. Для публичной сети настроенный HTTPS обязателен; для внутренней сети (intranet address) HTTPS не обязателен.
- Явная связь
Соседа можно указать вручную — адресом, именем и общим секретом. Такая связь работает всегда, в том числе по обычному HTTP, и не требует общего домена. Подходит для точечного соединения двух площадок или подключения узла за NAT.
- Super-node
Один узел может одновременно состоять в нескольких доменах. Он видит ресурсы и узлы каждого своего домена, но не соединяет домены между собой — изоляция сохраняется. В карте сети такой узел помечается как
super.- Оповещения (алерты)
Встроенная служба оповещений следит за потоками, оборудованием узла, приёмом DVB и записью DVR и поднимает алерты, когда что-то выходит за заданные пределы. В сети с включённым разносом на каждом узле виден сводный набор алертов всего домена (см. Оповещения (алертер)).