Files
digital-garden/dev/architecture/Session Affinity.md
2025-01-17 16:55:52 +03:00

3.4 KiB
Raw Permalink Blame History

aliases, tags, date
aliases tags date
Sticky Sessions
maturity/🌱
2025-01-17

Session Affinity (или Sticky Sessions) — это подход в highload/Балансировка нагрузки, при котором запросы от одного клиента всегда направляются на один и тот же сервер в течение всей сессии. Это обеспечивает сохранение состояния клиента на конкретном сервере и делает взаимодействие более последовательным.

Преимущества

  • Сохранение состояния: Не требует сложной реализации хранения состояния между серверами.
  • Простота для разработчиков: Упрощает работу с приложениями, которые не являются Stateless Service.

Недостатки

  • Риски перегрузки: Сервер, привязанный к большому количеству клиентов, может стать перегруженным.
  • Уязвимость к сбоям: Если сервер выходит из строя, сессии клиентов теряются.
  • Меньшая гибкость Масштабирование информационной системы: Динамическое добавление или удаление серверов затруднено.

Методы реализации

  • По IP-адресу клиента:
    • Сервер выбирается на основе IP-адреса клиента.
    • Простая реализация, но уязвима к использованию прокси-серверов и NAT.
  • По cookie:
    • Балансировщик устанавливает ../network/Cookie на клиенте, где хранится информация о назначенном сервере.
    • Наиболее популярный метод благодаря своей гибкости.
  • На основе токена:
    • Клиент предоставляет токен (например, JWT), который указывает на сервер, обрабатывающий сессию.
    • Токен может быть частью механизма аутентификации.
  • Hash-Based (Хеширование):
    • Сервер определяется через хеширование идентификатора клиента (например, IP, ID пользователя или URL).
    • Эффективен для систем с большим количеством пользователей.

Мета информация

Область:: ../../meta/zero/00 Архитектура ИС Родитель:: highload/Балансировка нагрузки Источник:: Создана:: 2025-01-17 Автор::

Дополнительные материалы

Дочерние заметки