Горизонтальное масштабирование приложения JSF 2.0

Учитывая, что JavaServer Faces по своей природе сохраняет состояние на стороне сервера, какие методы рекомендуются для горизонтального масштабирования приложения JSF 2.0?

Если приложение запускает несколько серверов JSF, я могу представить себе следующие сценарии:

  1. Sticky Sessions: отправлять все запросы, соответствующие данному сеансу, на один и тот же сервер.
    • Вопрос:какая технология обычно используется для достижения этой цели?
    • Проблема: сбой сервера приводит к потере сеансов... и в целом кажется хрупкой архитектурой, особенно при запуске с нуля (без попытки масштабирования существующего приложения)
  2. Репликация состояния (сеанса): реплицировать состояние JSF на все серверы JSF в кластере
    • Вопрос:какая технология обычно используется для достижения этой цели?
    • Проблема: не масштабируется. общий объем памяти кластера = общий объем памяти на наименьшем сервере
  3. Укажите JSF (посредством конфигурации) сохранять свое состояние на внешнем ресурсе (например, на другом сервере, на котором работает очень быстрая база данных в памяти), а затем получить доступ к этому ресурсу с серверов JSF, когда нужно состояние приложения?
    • Вопрос: возможно ли это?
  4. Указать JSF (через конфигурацию) не сохранять состояние?
    • Вопрос:возможно ли это?

[EDIT]

Обновлено в ответ на предложение Рави о Sticky Sessions

6
задан Alex Averbuch 16 April 2012 в 00:30
поделиться