Разница между привязкой сеанса и липким сеансом?

126

В чем разница между привязкой сеанса и закрепленным сеансом в контексте серверов балансировки нагрузки?

user32262
источник

Ответы:

82

Я видел, что эти термины взаимозаменяемы, но есть разные способы их реализации:

  1. Отправьте cookie при первом ответе, а затем ищите его при последующих. Файл cookie сообщает, на какой реальный сервер отправлять.
    Плохо, если вам нужно поддерживать браузеры без файлов cookie
  2. Разделение на основе IP-адреса запрашивающей стороны.
    Плохо, если он не статичен или многие входят через один и тот же прокси.
  3. Если вы аутентифицируете пользователей, разбивайте их на разделы на основе имени пользователя (для этого должен быть режим аутентификации с поддержкой HTTP).
  4. Не требует состояния.
    Разрешить клиентам подключаться к любому серверу (отправить состояние клиенту и заставить его отправить его обратно).
    Это не липкий сеанс, это способ избежать этого.

Я подозреваю, что липкий может относиться к способу cookie, и это сходство может относиться к # 2 и # 3 в некоторых контекстах, но это не то, как я видел, как он использовал (или использовал его сам)

Лу Франко
источник
6
Если запрос привязан к физическому серверу, что произойдет, если этот сервер выйдет из строя? Есть ли стратегия использования файла cookie для защиты отказоустойчивого сервера?
raffian
2
Если сервер выходит из строя, приложение выходит из строя - возможно, вам нужно снова войти в систему. Возможно, вы потеряли данные. Обычно балансировщик нагрузки выбирает другой сервер, и вы продолжаете работу, но какое-то состояние теряется. Если это неприемлемо, вам необходимо как можно быстрее передать состояние в БД или другие серверы или использовать стратегию без сохранения состояния.
Лу Франко
FWIW Heroku называет их противоположными. Сеанс Afifinity основан на файлах cookie и не поддерживает закрепление. devcenter.heroku.com/articles/session-affinity
RandallB
39

Поскольку я всегда слышал термины, используемые в сценарии балансировки нагрузки, они взаимозаменяемы. Оба означают, что после запуска сеанса один и тот же сервер обслуживает все запросы для этого сеанса.

Джонатан Рупп
источник
21

Закрепленный сеанс означает, что когда на сайт поступает запрос от клиента, все последующие запросы отправляются на тот же сервер, к которому был получен первоначальный запрос клиента. Я считаю, что привязка сеанса является синонимом липкого сеанса.

kemiller2002
источник
13

Они одинаковые.

Оба означают, что при поступлении в балансировщик нагрузки запрос будет направлен на сервер, который обслужил первый запрос (и имеет сеанс).

Джастин Нисснер
источник
11

Прикрепленный сеанс означает маршрутизацию запросов определенного сеанса на тот же физический компьютер, который обслужил первый запрос этого сеанса.

Манодж
источник
3

Эта статья проясняет для меня вопрос и обсуждает другие типы устойчивости балансировщика нагрузки.

Мысли Дэйва: постоянство балансировщика нагрузки (липкие сессии)

Джон С.
источник
6
Похоже, больше нет в наличии, но есть копия в машине Wayback
Мартин МакНалти
12
Вот почему вы не публикуете ссылки без объяснения причин,
Хуан Мендес,
Обнаружено, что содержимое указанной выше ссылки (в настоящее время недоступной) было перемещено в archive.li/SG4fA. В нем в основном перечислены различные типы сохраняемости, поддерживаемые балансировщиком нагрузки F5.
aveek
0

Это синонимы. Никакой разницы

Прикрепленная сессия / привязка сеанса:

Сходство / липкость / контакт между сеансом пользователя и сервером, на который отправляется запрос пользователя, сохраняется.

Sateesh
источник