Назад | Перейти на главную страницу

Возникли проблемы с поддержанием сеансов в нескольких инстансах Amazon EC2

Один из моих сайтов размещен в сервисе Amazon EC2. Проблема начинается, когда сайт сталкивается с большой нагрузкой, которая, в свою очередь, порождает новый экземпляр EC2 с помощью AutoScaling. Это хорошо, но проблема в том, что когда эти экземпляры уничтожаются (из-за отсутствия нагрузки), информация о сеансе также теряется и, следовательно, вынуждает пользователя повторно войти на сайт.

Как лучше всего подойти к этой проблеме?

Я заглянул в Memcached Session Manager & он отлично работает для Sticky-сессий, но вызывает проблемы, когда я пытаюсь использовать Non-Sticky-сессии, поскольку я делаю много параллельных запросов к моему серверу.

Мой текущий сервер - Apache + Tomcat

Любые указатели полезны. Спасибо.

(кросс-пост от webmasters.stackexchange)

Если ваши экземпляры автомасштабирования можно прекратить в любое время, и вы не можете позволить себе потерять информацию о сеансе, то вы не можете хранить информацию о сеансе в экземплярах автомасштабирования.

Если у вас есть база данных (например, MySQL, RDS), вы можете хранить там сеансы. Это нормально работает для веб-сайтов с низким и средним объемом, но может не работать с большим объемом.

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

Вы также можете рассмотреть Amazon ElastiCache (только что выпущенный):

http://aws.amazon.com/elasticache/

Он совместим с протоколом Memcached, поэтому существующее программное обеспечение плагина сеанса веб-сервера должно работать без особых проблем.