Tomcat через Apache Server отключается после слишком большого количества подключений

У меня есть сервер Apache (2.4), который обслуживает контент через соединитель AJP на сервере Tomcat 7.

Одному из моих клиентов удается убить экземпляр tomcat после запуска слишком большого количества одновременных подключений к службе JSP JSON Api. (Apache все еще работает, но tomcat падает. Перезапуск Tomcat возвращает его обратно) в журналах tomcats нет ошибок.

Я хотел бы защитить сайт от такого падения, но я не уверен, какие конфигурации изменить.

Я не хочу ограничивать количество одновременных подключений, поскольку для этого есть законные варианты использования,

Мои настройки памяти Tomcat:
Исходный пул памяти: 1280 МБ
Максимальный пул памяти: 2560 МБ
, что, как я предполагал, было достаточно.

Возможно, стоит упомянуть, что служба API использует несколько, возможно, тяжелых соединений MySQL.

Любой совет был бы очень признателен.


person Fuzz    schedule 22.06.2019    source источник


Ответы (2)


Почему бы вам не перевести наиболее часто используемые/важные функции вашего приложения на microservices архитектуру и dockerize серверы Tomcat, чтобы иметь возможность управлять несколькими экземплярами вашего приложения. Мы надеемся, что это поможет вашему приложению управлять несколькими подключениями, не влияя на общую производительность серверов на работе.

person bijayshrestha    schedule 29.06.2019

Если вы говорите о масштабировании, вам нужно выполнить горизонтальное масштабирование с несколькими серверами Tomcat.

Если вы не можете ограничить пользовательские подключения и при этом хотите, чтобы приложение работало гладко, вам необходимо масштабировать. Изменение архитектуры микросервисов возможно, но не всегда возможно для производственного решения.

Лучше всего подумать о запуске нескольких котов, разделяющих нагрузку. Есть разные способы сделать это. С вашим техническим стеком я чувствую, что плагин балансировщика нагрузки Apache 2 в сочетании с Tomcat подойдет лучше всего.

пример здесь.

Теперь, что касается емкости сервера, емкости подключения к базе данных и т. д., вам также может потребоваться подумать о вертикальном масштабировании.

person Kris    schedule 01.07.2019