45 lines
3.4 KiB
Markdown
45 lines
3.4 KiB
Markdown
---
|
||
aliases:
|
||
- Sticky Sessions
|
||
tags:
|
||
- maturity/🌱
|
||
date: 2025-01-17
|
||
---
|
||
**Session Affinity** (или **Sticky Sessions**) — это подход в [[highload/Балансировка нагрузки|балансировке нагрузки]], при котором запросы от одного клиента всегда направляются на один и тот же сервер в течение всей сессии. Это обеспечивает сохранение состояния клиента на конкретном сервере и делает взаимодействие более последовательным.
|
||
|
||
**Преимущества**
|
||
- **Сохранение состояния**: Не требует сложной реализации хранения состояния между серверами.
|
||
- **Простота для разработчиков**: Упрощает работу с приложениями, которые не являются [[Stateless Service|stateless]].
|
||
|
||
**Недостатки**
|
||
- **Риски перегрузки**: Сервер, привязанный к большому количеству клиентов, может стать перегруженным.
|
||
- **Уязвимость к сбоям**: Если сервер выходит из строя, сессии клиентов теряются.
|
||
- Меньшая гибкость [[Масштабирование информационной системы|масштабирования]]: Динамическое добавление или удаление серверов затруднено.
|
||
|
||
**Методы реализации**
|
||
- **По IP-адресу клиента**:
|
||
- Сервер выбирается на основе IP-адреса клиента.
|
||
- Простая реализация, но уязвима к использованию прокси-серверов и NAT.
|
||
- **По cookie**:
|
||
- Балансировщик устанавливает [[../network/Cookie|cookie]] на клиенте, где хранится информация о назначенном сервере.
|
||
- Наиболее популярный метод благодаря своей гибкости.
|
||
- **На основе токена**:
|
||
- Клиент предоставляет токен (например, JWT), который указывает на сервер, обрабатывающий сессию.
|
||
- Токен может быть частью механизма аутентификации.
|
||
- **Hash-Based (Хеширование)**:
|
||
- Сервер определяется через хеширование идентификатора клиента (например, IP, ID пользователя или URL).
|
||
- Эффективен для систем с большим количеством пользователей.
|
||
***
|
||
## Мета информация
|
||
**Область**:: [[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]
|
||
**Родитель**:: [[highload/Балансировка нагрузки|Балансировка нагрузки]]
|
||
**Источник**::
|
||
**Создана**:: [[2025-01-17]]
|
||
**Автор**::
|
||
### Дополнительные материалы
|
||
-
|
||
|
||
### Дочерние заметки
|
||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||
|