Репликация сессий

Начиная с версии 1.6 Jelastic предоставляет репликацию сессий между веб-серверами, такими как Tomcat 6,7, Glassfish 3 или Jetty6.
Репликация сессии это механизм, используемый для репликации данных в сессиях, хранимых на разных веб серверах. Тем не менее, реплицируемые сервера должны находиться в одном кластере. В случае, если репликация сессии включена в окружении, все данные сессии загружаются на все реплицируемые сервера. Операция репликации сессий не копирует атрибуты, которые не могут быть сериализованы в сессии или любые специфические данные конкретного устройства. Репликация сессий обеспечивают высокую надежность, масштабируемость и возможность восстановления после отказа.


В Jelastic процесс репликации происходит с помощью multicast. Таким образом мы имеем следующие преимущества:
  • обмен сессий между нодами по локальной сети;
  • не используются дополнительные программы типа memcache и потому образуется меньше точек отказа в системе.

  • Для использования репликации в Jelastic следует проделать следующие шаги:

    1. Войдите в систему через
    Jelastic

    2. Нажмите Создать окружение
    3. Выберите необходимые сервера приложений
    4. Включите Высокую доступность как показано на рисунке:

    Все действия отобразятся в диспетчере задач.

    После того как окружение будет создано, Вы увидите, что репликация включена, как на рисунке ниже:

    Как это работает?

    Когда клиент делает первый запрос к балансировщику нагрузки (NGINX), запрос направляется на один из серверов в кластере. На протяжении сессии клиент продолжает работать на одном и том же сервере в кластере (так называемая липкая сессия) Очевидно, что остальные сервера работают над своей частью сессий.

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

    Также пользователи могут включить или выключить репликацию сессии при изменении топологии окружения.

How to Enable Session Replication

To use replication in Jelastic PaaS you have to come through the next steps:

Log into Jelastic and click New Environment.

Pick application server you need and turn on High-Availability as shown on the picture below:

high-availability in topology wizard
While environment is creating all actions are displayed in the task manager:

configuring ha tasks manager
When the environment is installed, you can see that replication is enabled as shown on the picture below:

environment with high-availability

How It Works?

When the user makes his first request to the web application load balancer (NGINX), it redirects the request to one of the servers within the cluster. Throughout the session user continues to work with that same instance of application server (so called Sticky Sessions). Obviously the other instance in the cluster is also working serving its half.

If one of the instances fails, the users, who were on that instance get automatically switched to the other instance in this cluster. Thanks to the replication, the other instance already has all the sessions of the failed instance, so end-users never notice any change. In the highly unlikely event of both instances in a cluster failing, users get redirected to another cluster (if there areseveral).
environment with high availability scheme
Also, users can turn on/off replication within already created environment by changing its topology.