Tomcat через Apache Server выходит из строя после слишком большого количества соединений - PullRequest
2 голосов
/ 22 июня 2019

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

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

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

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

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

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

Любой совет будет наиболее ценным.

Ответы [ 2 ]

1 голос
/ 29 июня 2019

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

0 голосов
/ 01 июля 2019

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

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

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

У вас есть пример здесь .

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

...