Process BigBlueButton recordings via CUPS as a queue server and load balancer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
2.5 KiB

1 year ago
# Обработка записей BigBlueButton через CUPS как сервер очереди и балансировщик нагрузки
## Формулировка задачи
В часы пиковой нагрузки идет одновременно много (допустим, 50) вебинаров на нескольких серверах BigBlueButton.
Каждый сервер имеет определенное количество ресурсов для проведения вебинара (память и процессор), но не имеет ресурсов — дискового пространства — для хранения записей. Также нецелесообразно хранить разные записи на разных серверах.
Во время пиковой нагрузки нельзя занять ресурсы сервера конвертированием записей, однако записи нужны в готовом для использования виде как можно скорее.
## Концепция решения
Выносим обработку записей на отдельные сервер(-ы).
Прошел вебинар — перекачали исходники записи на этот специальный сервер и конвертировали их. Результат конвертации положили на специальный сервер, обслуживающий записи.
Для масштабирования может потребоваться несколько обрабатывающих записи серверов.
## Реализация решения
CUPS многим известен как сервер печати в UNIX-подобных операционных системах, однако его можно использовать как сервер очереди, что мы и делаем.
Вместо принтера у нас обработчик записей, вместо задания печати ­— исходники записи.
CUPS имеет встроенный функционал, так сказать, кластеризации: может сам распределять задания печати между свободными принтерами, чем мы воспользуемся для распределения заданий обрбаотки записей между несколькими серверами.