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