Я запускаю приложение в облаке с довольно эластичным спросом, и мне нужно использовать автоматическое масштабирование.
Приложение использует систему pub / sub для приема и обработки запросов на работу. Каждый сервер подписывается на очередь и выбирает задания из этой очереди одно за другим, пока очередь не станет пустой.
Я хотел бы иметь возможность посмотреть длину очереди (сколько заданий в настоящее время поставлено в очередь) и создать политику в следующих строках:
"Если длина очереди больше, чем X, увеличьте масштаб. Если длина очереди равна 0 (и была в течение определенного времени), уменьшите масштаб.
Длину очереди можно узнать с помощью HTTP-запроса к серверу. Приложение имеет конечную точку, которая описывает каждую очередь и их текущую длину в формате JSON.
Я искал сервис / приложение, которое может это сделать, но не нашел. Я чувствую, что мне нужно писать код. Думал, что сначала спрошу здесь, если кто-нибудь узнает о решении.
Боковой вопрос: неужели люди сталкивались с этой проблемой в прошлом? Похоже, что определенные политики масштабирования, подобные этой, довольно распространены. Если я пойду по пути разработки, будет ли полезен открытый исходный код?