Я хочу знать разницу между липкими и нелипкими сессиями. То, что я понял после чтения из Интернета:
Sticky: там будет только один объект сеанса.
Нелипкий сеанс: объект сеанса для каждого сервера node
Я хочу знать разницу между липкими и нелипкими сессиями. То, что я понял после чтения из Интернета:
Sticky: там будет только один объект сеанса.
Нелипкий сеанс: объект сеанса для каждого сервера node
Когда ваш сайт обслуживается только 1 web server
, для каждой пары создается объект сеанса и остается в памяти веб-сервера. Все запросы от клиента переходят на этот веб-сервер и обновляют этот объект сеанса. Если некоторые данные необходимо сохранить в объекте сеанса в течение периода взаимодействия, он сохраняется в этом объекте сеанса и остается там до тех пор, пока существует сеанс.
Однако, если ваш сайт обслуживается multiple web servers
, который стоит за load balancer
, балансировщик нагрузки решает, к какому фактическому (физическому) веб-серверу должен идти каждый запрос. Например, если на балансировщике имеется 3 веб-сервера A, B и C, возможно, что www.mywebsite.com/index.jsp обслуживается с сервера A, www.mywebsite.com/login.jsp подается с сервера B и www.mywebsite.com/accoutdetails.php подаются с сервера C.
Теперь, если запросы обслуживаются (физически) на 3 разных серверах, каждый сервер создал для вас объект сеанса, и поскольку эти объекты сеанса расположены на трех независимых блоках, нет прямого способа узнать, что есть в объект сеанса другой. Для синхронизации между этими сеансами сервера вам, возможно, придется записывать/читать данные сеанса в слой, который является общим для всех - как БД. Теперь писать и читать данные в/из db для этого случая использования может быть не очень хорошая идея. Теперь вот роль липкой сессии. Если команде load balancer
предлагается использовать липкие сеансы, все ваши взаимодействия будут происходить с the same physical server
, даже если присутствуют другие серверы. Таким образом, ваш объект сеанса будет таким же на протяжении всего вашего взаимодействия с этим сайтом.
Подводя итог, в случае Sticky Sessions все ваши запросы будут направлены на один и тот же физический веб-сервер, в то время как в случае нелипкого loadbalancer может выбрать любой веб-сервер для обслуживания ваших запросов.
В качестве примера вы можете прочитать об Amazon Elastic Load Balancer и липких сессиях здесь: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sessions.html
Я ответил на некоторые подробности: fooobar.com/info/46643/...
Или вы можете прочитать его там == >
Когда вы используете loadbalancing, это означает, что у вас есть несколько экземпляров tomcat, и вам нужно разделить нагрузки.