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

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


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

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

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

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

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

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

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

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

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

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

How to Adjust Sesion Replication

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

1. Log into Jelastic.
2. Click Create Environment.
3. Pick application servers you need.
4. Turn on "High-availability" as shown on the picture below:

    During environment is creating all actions are displayed in the task manager:

    After creating is finished you can see that replication is turned on as shown on the picture below:

How It Works?

When the user makes his first request to the web application balancer (NGINX), it redirects the request to one of the clusters. 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.

Also users are available to turn on/off replication during changing topology of the environment that has been already created.