Есть ли способ разделения ресурсов сервера между пользователями Java-приложения?
Доброго времени суток, уважаемые эксперты! Есть ли какая-то возможность разделить пользователей Java-приложения крутящегося под Tomcat по ресурсам сервера? Описание ситуации:
Есть приложение написанное на Java, крутящееся под управлением Tomcat-сервера. Периодически пользователи могут выполнять действия, приводящие к загрузке сервера на 100% в течение продолжительного времени. Требуется ограничить пользователей в ресурсах сервера так, чтобы один пользователь не мог "завалить" весь сервер.
Единственное что пока пришло в голову — это контейнеризировать все приложение в Docker и запускать отдельный контейнер, ограниченный по ресурсам, для каждого пользователя.
Есть ощущение, что я упускаю какое-то более простое решение =(
Сервер многоядерный. Но во-первых приложение само по себе многопоточное, так что забиваются все ядра, во-вторых, пользователей гораздо больше чем ядер у сервера так что даже ограничение на работу в один поток не гарантирует работоспособность сервера.
* Сделать очередь обработки задач.
* Добавить серверов и отправлять работу туда
* Программными средствами делать Thread.yield
* Что-то еще в зависимости от специфик приложения.