Многоуровневая архитектура Проблема масштабируемости приложений - PullRequest
0 голосов
/ 18 декабря 2018

У нас есть приложение на базе Spring с многоуровневой архитектурой.

Слои в следующем порядке

Rest
Service
DB Layer

Все они объединены в файл .war и развернуты внутри Apache Tomcat 7

У нас есть API-интерфейсы Rest, которые выполняют некоторые серии работ на уровне сервиса и возвращают ответ.

Например:

Policy Push API сделаетпроверка соответствия, проверка и отправка данных и запись в БД и показ сообщений пользователю.Этот процесс занимает около 2 секунд.

Несколько дней назад наш сервер начал падать.При проверке мы обнаружили, что мы выполняем около 2000 запросов / сек, которые tomcat не может обработать.

Чтобы преодолеть это, мы добавили Nginx Loadbalancer с 3 экземплярами.

в некоторой степени, но я чувствую, что это просто исправление.

Я рассматривал Kafka, RabbitMQ как вариант.Но в этом случае проблема будет Запрос будет добавлен в очередь, и ответ будет переадресован пользователю .

Нам нужно показывать статус Политики в реальном времени.

Добавляя его в очередь, вы не гарантируете, что политика выдвинута.

Было бы полезно, если бы кто-то мог помочь с этим вариантом использования, как обращаться?

Является ли добавление дополнительного сервера для балансировки нагрузки единственным вариантом иличто-то еще?

...