У меня есть веб-приложение, которое выполняет большую часть своих зарегистрированных пользовательских действий, основанных на постоянном файле cookie, который сопоставляется с записью базы данных, так что каждому ajax POST не требуется или не требуется сеанс tomcat.
В очень небольшом количестве запросов ajax у меня есть небольшое количество данных сеанса сервлета для сохранения вошедшего в систему пользователя, и я хочу, чтобы сеанс сохранялся в течение очень долгого времени (пока у него открыт браузер). ), даже если существует длительный период бездействия.
Теперь я понимаю, что для кластера tomcat существуют липкие сеансы или реплицированные сеансы, на ваш выбор. В большинстве случаев я бы хотел, чтобы мой балансировщик нагрузки отправлял трафик на наименее загруженный экземпляр tomcat, а сервлет никогда не получал или не создавал сеанс. В очень редких случаях мне нужен сеанс и доступ к небольшому количеству данных сеанса.
Также я использую apache mod-proxy. Это ограничивает выбор?
Если бы я выбрал балансировку нагрузки сессионного режима, то подавляющее большинство моих запросов ajax, которые не должны быть привязанными, все равно приходилось бы на один и тот же сервер Tomcat. Тем не менее, некоторые говорят, что липкие сессии дают лучшую производительность, если вы не беспокоитесь об отказе.
Может кто-нибудь сказать мне, каков правильный выбор в моем случае?
Одна идея, которая у меня возникла, заключалась в том, что всякий раз, когда я создаю сеанс в tomcat, я также создаю файл cookie MYSESSIONID только для определенного сервлета (пути), для которого установлено то же значение, что и для сеанса tomcat. Затем во всех моих очень немногих запросах сервлета, которые требуют доступа к данным сеанса, я перехожу к этому одному сервлету маршрутизации, и балансировщик нагрузки может создать липкий сеанс, связанный с файлом cookie MYSESSIONID. Это хорошее решение?
Andy