Я хочу знати різницю між сеансами, що не впадають в липку та не липнуть. Що я зрозумів, прочитавши з Інтернету:
Липкий : там буде лише один об’єкт сеансу.
Не липкий сеанс : об’єкт сеансу для кожного вузла сервера
Я хочу знати різницю між сеансами, що не впадають в липку та не липнуть. Що я зрозумів, прочитавши з Інтернету:
Липкий : там буде лише один об’єкт сеансу.
Не липкий сеанс : об’єкт сеансу для кожного вузла сервера
Відповіді:
Коли ваш веб-сайт обслуговується лише одним веб-сервером, для кожної пари клієнт-сервер створюється об’єкт сеансу і залишається в пам'яті веб-сервера. Усі запити від клієнта переходять на цей веб-сервер та оновлюють цей об’єкт сеансу. Якщо деякі дані потрібно зберігати в об’єкт сеансу протягом періоду взаємодії, він зберігається в цьому об’єкті сеансу і залишається там, поки існує сесія.
Однак якщо ваш веб-сайт обслуговується декількома веб-серверами, які сидять за балансиром навантаження, балансир навантажень вирішує, до якого фактичного (фізичного) веб-сервера слід звертатися. Наприклад, якщо за балансиром навантаження є 3 веб-сервери A, B і C, можливо, www.mywebsite.com/index.jsp подається з сервера A, www.mywebsite.com/login.jsp подається з сервер B і www.mywebsite.com/accoutdetails.php подаються з сервера C.
Тепер, якщо запити обслуговуються з (фізично) трьох різних серверів, кожен сервер створив для вас об’єкт сеансу, і оскільки ці об’єкти сеансу сидять на трьох незалежних полях, немає прямого способу дізнатися, що там у об’єкт сеансу з іншого. Для синхронізації між цими сеансами на сервері, можливо, доведеться записати / прочитати дані сеансу в загальний для всіх рівень - наприклад, БД. Тепер записування та читання даних в / з db для цього випадку використання може бути не дуже хорошою ідеєю. Тепер ось тут іде роль липкого сеансу .
Якщо балансиру навантажень доручено використовувати клейкі сеанси, всі ваші взаємодії відбуватимуться з тим же фізичним сервером, навіть якщо присутні інші сервери. Таким чином, об’єкт сеансу буде однаковим протягом усієї вашої взаємодії з цим веб-сайтом.
Підводячи підсумок, у разі стирких сеансів всі ваші запити будуть спрямовані на один і той же фізичний веб-сервер, тоді як у випадку неліпкого балансира може вибрати будь-який веб-сервер для обслуговування ваших запитів.
Як приклад, ви можете прочитати про Еластичний балансир завантаження Amazon та про липкі сеанси тут: http://aws.typepad.com/aws/2010/04/new-elastic-load-balancing-feature-sticky-sesions.html
Я зробив відповідь із ще деякими деталями тут: https://stackoverflow.com/a/11045462/592477
Або ви можете прочитати його там ==>
Якщо ви використовуєте балансування навантаження, це означає, що у вас є кілька примірників tomcat, і вам потрібно розділити навантаження.