Изначально у нас есть два экземпляра AWS EC2 с node.js, работающими за балансировщиком нагрузки с фиксированными сессиями. По мере увеличения нагрузки добавляется больше экземпляров.
Но мы сталкиваемся с проблемами при таком подходе. Так как наше приложение предназначено в основном для воркшопов, нагрузка обычно увеличивается в течение короткого промежутка времени (начало воркшопа) и у каждого участника воркшопа залипает сессия с первыми двумя инстансами, а у новых практически нет. Из-за этого производительность остается плохой.
Первая мысль была: давайте отключим липкие сессии. Но это разрушает наши веб-сокеты, потому что им нужны липкие сеансы (по крайней мере, это то, что я читал). Другая проблема связана с уменьшением нагрузки. Экземпляры закрываются, и сокет-соединения также теряются.
Есть ли способ переместить пользовательские сеансы между экземплярами или заставить веб-сокеты работать без липких сеансов (возможно, с Redis)?