@preblud

Как завернуть HTTP запросы в очереди сообщений?

Имеем следующую инфраструктуру: развернуто несколько инстанций сервера мобильного приложения, они обращаются к другому внутреннему сервису по протоколу SOAP, у внутреннего сервиса тоже несколько инстанций, каждая его инстанция может выполнять одновременно определенное количество запросов, для распределения нагрузки между сервисами сейчас используется nginx с модулями ngx_http_upstream_module и ngx_http_limit_req_module.
От менеджера проекта поступила задача, завернуть HTTP запросы в сообщения для брокера очередей (любой менеджер очередей), и использовать эти очереди для балансировки нагрузки на внутренний сервис, т.к. в пиковое время его производительности не достаточно для нормальной работы приложения.
Никакой информации по это вопросу не нашел, хотелось бы услышать мнение других, возможно у кого-то был подобный опыт, и вообще в целом о целесообразности подобного решения.
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 2
sarapinit
@sarapinit
Точу водой камень
Чтобы оценить целесообразность надо понимать цель. Если цель "не потерять ни одного запроса", то целесообразно. Вот только я сомневаюсь, что все эти запросы нужно обрабатывать. Потому что они будут терять актуальность быстрее чем обрабатываться. Тут может помочь какой-то интеллектуальный троттлинг.

Есть хороший доклад от СКБ-Контур примерно на эту тему

Игорь Луканин — Как выжить под нагрузкой: отказоус...
Ответ написан
Выполнять задачи в очереди можно если задачи могут выполняться отложенно. При обработке в очереди нет гарантии выполнения в заданный срок времени и механизмы взаимодействия при этом усложняются.
Для управления нагрузкой в пиковое время необходимо горизонтально масштабировать экземпляры приложения при повышении нагрузки сверх заданного лимита. По ходу, может понадобиться масштабирование СУБД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы