2010-02-12 3 views
4

Создание приложения JSF с весной на Tomcat. Цель - это веб-ферма, и клиент попросил, чтобы мы разработали наше приложение, чтобы оно могло быть сбалансировано по нагрузке, не полагаясь на «липкие сессии» в LB.jsf сессий в веб-ферме

В .NET вы можете настроить хранилище сеансов SQL Server или State State Service. Какие альтернативы существуют в мире Java? Есть ли стандартный способ подключить другое хранилище состояний сеанса, которое указывает на базу данных MySQL, например? Имеет ли весна какие-либо крючки?

ответ

2

Это конкретный сервлетконтейнер, который в этом случае является Tomcat. Сервлетконтейнер - это тот, который управляет сеансами и предоставляет сеансы. Поэтому JSF и Spring здесь нечего делать. Они просто прозрачно извлекают его из servletcontainer на request.getSession() и так далее.

В Tomcat, вы можете предоставить в более custom session manager implementation веб-приложение-х Context:

<Context ...> 
    <Manager className="com.example.SessionManager"> 

..where com.example.SessionManager реализует org.apache.catalina.Manager в соответствии с его контрактом. В этом случае вы можете написать код для возврата сессий по базе данных.

Однако существуют альтернативы для вашего конкретного требования, вы можете выбрать возможности встроенной кластерной/сеансовой репликации Tomcat, вместо того чтобы повторно изобретать его с помощью менеджера/базы данных custommade. Узнайте больше об этом на странице Tomcat Clustering/Session Replication HOW-TO.

+0

Как оказалось, мы используем только tomcat в разработке, производственный сайт использует websphere, которая имеет собственную реализацию (http://publib.boulder.ibm.com/infocenter/wasinfo/v4r0/index.jsp ? тема =/com.ibm.websphere.v4.doc/wass_content/06061105.html). Но зная, что это специфичный для контейнера, достаточно, чтобы выносить рекомендации по развертыванию. Благодаря! – roufamatic

+1

Добро пожаловать. Возможно, было бы полезно знать, что Websphere фактически использует Tomcat «под капотами». – BalusC

Смежные вопросы