Копирование потока на другой wcs сервер

Kirill

Member
Добрый день!
Хотим сделать резервирование wcs, поэтому есть желание отсылать поток сразу на 2 сервера. Но при этом wcs1 основной, т.к. ближе к клиентам находится, а wcs2 резервный.
  • Работают оба сервера ( и поток успешно доходит до них от стримеров ). Копирование потока не требуется
  • Поток до 1-го сервера не доходит от стримера, при этом на 2-м wcs сервере этот поток есть. В этом случае поток с wcs2 копируется на wcs1. Как канал от стримера до wcs1 восстанавливается, то копирование потока с wcs2 -> wcs1 прекращается и поток на wcs1 публикуется от стримера.
  • Поток до 2-го сервера не доходит от стримера, при этом на 1-м wcs сервере этот поток есть. В этом случае поток с wcs1 копируется на wcs2. Как канал от стримера до wcs2 восстанавливается, то копирование потока с wcs1 -> wcs2 прекращается и поток на wcs2 публикуется от стримера.

Можно ли реализовать такую логику в рамках WCS, если нет, то возможно вы подскажите реализации похожих кейсов.

UPD: Похоже можно реализовать подобную логику исходя из документации .
 
Last edited:

Max

Administrator
Staff member
Добрый день
Можно сконфигурировать CDN:
https://docs.flashphoner.com/display/WCS5RU/CDN+2.0
У вас в CDN может быть 2 Origin сервера и 2 Edge сервера.
Origin - принимают потоки
Edge - раздают потоки
Схема такая:
1. Поток stream1 публикуется на Origin1 и Origin2 одновременно.
2. Если пользователь запросил поток stream1 на Edge1 сервере, Edge1 получит этот поток с первого Origin и раздаст.
Если пользователь запросил поток stream1 на Edge2 сервере, Edge2 получит этот поток с первого Origin и раздаст.
3. Если недоступен Origin1, то Edge-серверы будут брать поток с Origin2.
4. Если недоступен Edge1, то пользователь может подключиться к Edge2 и получить поток с него.
 

Kirill

Member
Есть
3. Если недоступен Origin1, то Edge-серверы будут брать поток с Origin2.
Можно ли выставить приоритет для origin, к какому origin должен в первую очередь подключаться edge?
 

Max

Administrator
Staff member
Origin может выступать в роли Edge ?
Нет, это разные роли.

Origin рассылает всем серверам в CDN информацию о том что у него есть stream1.
Если пользователь запрашивает stream1 у Edge сервера, этот Edge сервер копирует стрим с Origin.

В конфиге сервера явно прописывается роль:
cdn_role=origin или cdn_role=edge

Чтобы совместить эти роли, вам нужно использовать кастомные копирования стримов c помощью REST API.
Например можно вручную или скриптом скопировать стрим с Origin1 на Origin2 командой
Code:
/pull/push
https://docs.flashphoner.com/pages/viewpage.action?pageId=1049038
 

Max

Administrator
Staff member
Можно ли выставить приоритет для origin, к какому origin должен в первую очередь подключаться edge?
Приоритетным будет тот Origin, который первым получил поток. Выставить нельзя.
В CLI есть команда
Code:
show cdn-routes
Показывает пути к стриму.
 
Top