Я хочу знать разницу между липкими и нелипкими сессиями. Что я понял после прочтения из интернета:
Важно : только один объект сеанса будет там.
Non-sticky session : объект сеанса для каждого узла сервера
Я хочу знать разницу между липкими и нелипкими сессиями. Что я понял после прочтения из интернета:
Важно : только один объект сеанса будет там.
Non-sticky session : объект сеанса для каждого узла сервера
Ответы:
Когда ваш веб-сайт обслуживается только одним веб-сервером, для каждой пары клиент-сервер создается объект сеанса, который остается в памяти веб-сервера. Все запросы от клиента отправляются на этот веб-сервер и обновляют этот объект сеанса. Если некоторые данные необходимо хранить в объекте сеанса в течение периода взаимодействия, они сохраняются в этом объекте сеанса и остаются там до тех пор, пока существует сеанс.
Однако, если ваш веб-сайт обслуживается несколькими веб-серверами, которые находятся за балансировщиком нагрузки, балансировщик нагрузки решает, к какому фактическому (физическому) веб-серверу должен обращаться каждый запрос. Например, если за балансировщиком нагрузки находятся 3 веб-сервера A, B и C, возможно, что www.mywebsite.com/index.jsp будет обслуживаться с сервера A, а www.mywebsite.com/login.jsp - с сервер B и www.mywebsite.com/accoutdetails.php обслуживаются с сервера C.
Теперь, если запросы обслуживаются (физически) с 3 разных серверов, каждый сервер создал для вас объект сеанса и поскольку эти объекты сеанса располагаются в трех независимых ящиках, нет прямого способа узнать, что находится в объекте сеанса другого. Для синхронизации между этими сеансами сервера вам может потребоваться записать / прочитать данные сеанса в общий для всех уровень, например, в БД. Теперь запись и чтение данных в / из БД для этого варианта использования может быть плохой идеей. Теперь здесь идет роль Sticky-сессии .
Если подсистеме балансировки нагрузки предписано использовать липкие сеансы, все ваши взаимодействия будут происходить с одним и тем же физическим сервером, даже если присутствуют другие серверы. Таким образом, ваш объект сеанса будет одинаковым на протяжении всего вашего взаимодействия с этим сайтом.
Подводя итог, можно сказать, что в случае Sticky Sessions все ваши запросы будут направлены на один и тот же физический веб-сервер, а в случае несвязанного loadbalancer может выбрать любой веб-сервер для обслуживания ваших запросов.
В качестве примера вы можете прочитать об Amazon Elastic Load Balancer и липких сессиях здесь: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html
Я сделал ответ с более подробной информацией здесь: https://stackoverflow.com/a/11045462/592477
Или вы можете прочитать это там ==>
Когда вы используете балансировку нагрузки, это означает, что у вас есть несколько экземпляров tomcat, и вам нужно разделить нагрузки.