Tomcat отключить / уничтожить или повторно использовать создание сеанса для конкретных запросов - PullRequest
0 голосов
/ 08 июня 2018

Фон

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

.jsp просто делает запрос к данному приложению и проверяет, может ли он ответить, отправляя соответствующий ответ балансировщику нагрузки.

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

Вопрос

Могу ли я настроить Tomcat длявыполнить любое из следующих действий?

  • Не создавать сеанс для обработки определенных запросов
  • Повторно использовать один сеанс или уже созданный сеанс для обработки определенных запросов
  • Немедленно уничтожитьсеанс, который создается для определенных запросов или имеет очень маленький срок жизни

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

Я использую Tomcat 7.

Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 09 июня 2018

Здесь у вас есть несколько вариантов.

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

Другой способ - отключить генерацию сеанса для этого JSP.,По умолчанию сеансы создаются при доступе к JSP, если не указано иное.Вот как это сделать:

<%@page
  session="false"
  ..
%>
... rest of your page

Теперь ваша страница JSP даже не будет генерировать сеанс, поэтому вам не нужно избавляться от них или чего-то в этом роде.

Наконец,если вам по какой-то причине нужен сеанс в этой JSP, вы действительно можете использовать один сеанс для всех клиентов определенного типа.Вы можете сделать это, используя CrawlerSessionManagerValve .Просто убедитесь, что вы установили строку crawlerUserAgents в соответствии с тем, что ваш балансировщик нагрузки использует для своих датчиков.

0 голосов
/ 09 июня 2018

Как насчет просто уменьшить время сеанса до 1 минуты

<session-config>
    <session-timeout>1</session-timeout>
</session-config>
...