Каковы различные подходы для репликации сеанса Java EE? - PullRequest
10 голосов
/ 15 февраля 2011

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

Одной из функций, которые мы хотели бы включить, является репликация сеансов не только на разных серверах, но в идеале на разных сайтах (географически распределенная). Это возможно? Каковы подходы?

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

  • Сериализуемые атрибуты сеанса
  • тег <распространяемый /> в файле web.xml с дополнительной настройкой в ​​зависимости от поставщика xml

Есть ли другие подходы? Должен ли я пойти на репликацию в памяти? Или я должен сохранить состояние сеанса? Какие поставщики серверов приложений реализуют каждое решение?

Редактировать: Я получил награду, поэтому я действительно ищу исчерпывающий ответ. :)

Ответы [ 3 ]

4 голосов
/ 15 февраля 2011

Возможно, вы захотите взглянуть на Hazelcast и их HTTP Session Clustering функцию

2 голосов
/ 15 февраля 2011

Если вы используете tomcat, то вам подойдет memcached-session-manager.Это пользовательский менеджер сессий, который реплицирует сессии через memcached и поддерживает как липкие, так и не липкие сессии: http: // code.google.com/p/memcached-session-manager

Cheers, Martin

0 голосов
/ 24 февраля 2011

Взгляните на Oracle Coherence с модулем управления сеансами HTTP Coherence * Web .

Это в основном в памяти, но может быть более устойчивым через DB илидругие хранилища.

...