Один из моих сайтов размещен в сервисе Amazon EC2. Проблема начинается, когда сайт сталкивается с большой нагрузкой, которая, в свою очередь, порождает новый экземпляр EC2 с помощью AutoScaling. Это хорошо, но проблема в том, что когда эти экземпляры уничтожаются (из-за отсутствия нагрузки), информация о сеансе также теряется и, следовательно, вынуждает пользователя повторно войти на сайт.
Как лучше всего подойти к этой проблеме?
Я заглянул в Memcached Session Manager & он отлично работает для Sticky-сессий, но вызывает проблемы, когда я пытаюсь использовать Non-Sticky-сессии, поскольку я делаю много параллельных запросов к моему серверу.
Мой текущий сервер - Apache + Tomcat
Любые указатели полезны. Спасибо.
Если ваши экземпляры автомасштабирования можно прекратить в любое время, и вы не можете позволить себе потерять информацию о сеансе, то вы не можете хранить информацию о сеансе в экземплярах автомасштабирования.
Если у вас есть база данных (например, MySQL, RDS), вы можете хранить там сеансы. Это нормально работает для веб-сайтов с низким и средним объемом, но может не работать с большим объемом.
Вы можете запускать отдельные экземпляры с memcached, которые не масштабируются автоматически.
Вы также можете рассмотреть Amazon ElastiCache (только что выпущенный):
Он совместим с протоколом Memcached, поэтому существующее программное обеспечение плагина сеанса веб-сервера должно работать без особых проблем.