You cannot 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
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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