За и против Липкой Сессии / загрузка Привязки Сессии blancing стратегия?

Microsoft раньше имела их собственный Java к Преобразователю C# - Помощник Microsoft Java Language Conversion 3.0

52
задан Kemal Fadillah 7 April 2014 в 22:56
поделиться

1 ответ

Плюсы:

  • это просто - никаких изменений приложения не требуется.
  • лучше использует локальные кеши RAM (например, один раз просматривает профиль пользователя, кэширует его и может повторно использовать его при последующих посещениях того же пользователя)

Минусы:

  • если сервер выходит из строя, сеанс теряется. (обратите внимание, что это недостаток хранения информации о сеансе локально на веб-сервере, а не закрепленных сеансов как таковых). если то, что находится в сеансе, действительно важно для пользователя (например, черновик электронного письма) или для сайта (например, корзина для покупок), потеря одного из ваших серверов может быть очень болезненной.
  • в зависимости от «липкой» реализации в вашей нагрузке балансировщик, может направить неравную нагрузку на одни серверы по сравнению с другими
  • , ввод нового сервера в сеть не сразу дает новому серверу большую нагрузку - если у вас есть система динамической балансировки нагрузки для борьбы с пиками, липкость может снизить вашу способность быстро реагировать на всплеск. Тем не менее, это отчасти угловой случай и действительно применяется только к очень большим и сложным сайтам.
  • если у вас относительно мало пользователей, но трафик одного пользователя может затопить один сервер (например, сложные страницы с SSL, AJAX, динамически- сгенерированные изображения, динамическое сжатие и т. д.), то стикеры могут снизить время отклика конечного пользователя, поскольку вы не распределяете нагрузку одного пользователя равномерно по серверам. Если у вас много одновременных пользователей, это не проблема, поскольку все ваши серверы будут завалены!

Но если вы должны использовать локальное состояние сеанса на сервере, закрепленные сеансы определенно подходят - и даже если вы не используете локальное состояние сеанса сервера, липкость имеет преимущества, когда дело доходит до использования кеша (см. выше). Ваш балансировщик нагрузки должен иметь возможность просматривать файлы cookie HTTP (а не только IP-адрес), чтобы определять липкость, поскольку IP-адреса могут изменяться во время одного сеанса (например, стыковка ноутбука между проводной и беспроводной сетями).

Еще лучше, не надо вообще не использовать состояние сеанса на веб-сервере! Если состояние сеанса очень болезненно потерять (например, тележки для покупок), сохраните его в центральной базе данных и периодически удаляйте старые сеансы. Если состояние сеанса не критично (например, имя пользователя / URL-адрес аватара), вставьте его в cookie - просто убедитесь, что вы не запихиваете слишком много данных в cookie.

Современные версии Rails по умолчанию сохраняют переменные сеанса в cookie по причинам, указанным выше. Другие веб-фреймворки могут иметь опцию «хранить в cookie» и / или «хранить в БД».

поскольку IP-адреса могут изменяться во время одного сеанса (например, стыковка портативного компьютера между проводной и беспроводной сетями).

Еще лучше, вообще не использовать состояние сеанса на веб-сервере! Если состояние сеанса очень болезненно потерять (например, тележки для покупок), сохраните его в центральной базе данных и периодически удаляйте старые сеансы. Если состояние сеанса не критично (например, имя пользователя / URL-адрес аватара), вставьте его в cookie - просто убедитесь, что вы не запихиваете слишком много данных в cookie.

Современные версии Rails по умолчанию сохраняют переменные сеанса в cookie по причинам, указанным выше. В других веб-фреймворках может быть опция «хранить в cookie» и / или «хранить в БД».

поскольку IP-адреса могут изменяться во время одного сеанса (например, стыковка портативного компьютера между проводной и беспроводной сетями).

Еще лучше, вообще не использовать состояние сеанса на веб-сервере! Если состояние сеанса очень болезненно потерять (например, тележки для покупок), сохраните его в центральной базе данных и периодически удаляйте старые сеансы. Если состояние сеанса не критично (например, имя пользователя / URL-адрес аватара), вставьте его в cookie - просто убедитесь, что вы не запихиваете слишком много данных в cookie.

Современные версии Rails по умолчанию сохраняют переменные сеанса в cookie по причинам, указанным выше. Другие веб-фреймворки могут иметь опцию «хранить в cookie» и / или «хранить в БД».

Не использовать состояние сеанса на веб-сервере вообще! Если состояние сеанса очень болезненно потерять (например, тележки для покупок), сохраните его в центральной базе данных и периодически удаляйте старые сеансы. Если состояние сеанса не критично (например, имя пользователя / URL-адрес аватара), вставьте его в cookie - просто убедитесь, что вы не запихиваете слишком много данных в cookie.

Современные версии Rails по умолчанию сохраняют переменные сеанса в cookie по причинам, указанным выше. Другие веб-фреймворки могут иметь опцию «хранить в cookie» и / или «хранить в БД».

Не использовать состояние сеанса на веб-сервере вообще! Если состояние сеанса очень болезненно потерять (например, тележки для покупок), сохраните его в центральной базе данных и периодически удаляйте старые сеансы. Если состояние сеанса не критично (например, имя пользователя / URL-адрес аватара), вставьте его в cookie - просто убедитесь, что вы не запихиваете слишком много данных в cookie.

Современные версии Rails по умолчанию сохраняют переменные сеанса в cookie по причинам, указанным выше. В других веб-фреймворках может быть опция «хранить в cookie» и / или «хранить в БД».

Современные версии Rails по умолчанию сохраняют переменные сеанса в cookie по причинам, указанным выше. Другие веб-фреймворки могут иметь опцию «хранить в cookie» и / или «хранить в БД».

Современные версии Rails по умолчанию сохраняют переменные сеанса в cookie по причинам, указанным выше. В других веб-фреймворках может быть опция «хранить в cookie» и / или «хранить в БД».

73
ответ дан 7 November 2019 в 09:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: