Я очень новичок в Tomcat, так что я думаю, что ответ на этот вопрос довольно прост, но Google сегодня не дружит со мной.
У меня есть веб-приложение Java, смонтированное на Apache Tomcat. В то время как приложение имеет главную страницу (для диагностических целей), приложение на самом деле все о интерфейсе SOAP. Ни одному клиенту никогда не понадобится просматривать веб-страницу сервера. Клиенты отправляют запросы SOAP на сервер, который анализирует запросы и затем просматривает результаты в базе данных. Затем результаты передаются клиентам снова через SOAP.
В стандартной конфигурации Tomcat помещает запросы в очередь. Мой эксперимент состоял в том, чтобы установить клиент на двух разных компьютерах, указывающих на один и тот же сервер, и запустить поиск в одно и то же время (ну, один из них был 0,11 секунды после другого, но вы получили представление).
Как настроить количество одновременных потоков запросов?
Моя идеальная конфигурация состояла бы в том, чтобы иметь потоки X-запросов, каждый из которых перезагружает себя (то есть вызывает деструктор и конструктор и перераспределяет свое распределение памяти) каждые Y минут или после Z-запросов, в зависимости от того, что произойдет раньше. Мне сказали, что для этого можно настроить IIS (хотя у меня также нет опыта работы с IIS), но как бы вы сделали это с Tomcat?
Я бы хотел иметь возможность перезапускать потоки, потому что Tomcat, кажется, захватывает память при поступлении запроса и не освобождает его, что означает, что я получаю случайные (но не согласованные) ошибки пространства кучи Java, когда мы приближаемся к ограничение памяти (которое я уже настроил на 1 ГБ на сервере 2 ГБ). Я не уверен на 100%, связано ли это с утечкой памяти в моем приложении или просто с тем, что используемые мной инструменты используют много памяти.
Любой совет будет с благодарностью.
Спасибо,
Rik