1. Значение без состояния:
Серверы без состояния могут обрабатывать множество пользователей с очень небольшим количеством объектов. Чем больше пользователей находится в состоянии ожидания, тем полезнее серверы без состояния.
2. Состояние сеанса:
Актуальность: Состояние сеанса связано только с текущим сеансом. Он существует в бизнес-транзакциях и отделен от других сеансов и их бизнес-транзакций.
Отличие от записи информации о данных заключается в том, что постоянные данные, хранящиеся в базе данных в течение длительного времени, при записи данных видны всем сеансам, и состояние сеанса должно быть представлено в виде записи в базе данных.
Самая большая проблема: при работе с изоляцией (одновременные или связанные операции)
Вы не можете обрабатывать все данные в сеансе как состояние сеанса
3. Способ сохранения состояния сеанса:
1) Три способа сохранения состояния сеанса:
Состояние сеанса клиента: Сохранение данных на стороне клиента (URL-адрес, файл cookie, скрытый домен, доступный в Интернете и т.д.)
Применимый сценарий: Данные о сеансах невелики, и пользователи часто отменяют сеансы (например, пользователи B2C закрывают сайты напрямую и исчезают)
Проблема: Безопасность, Целостность
Состояние сеанса сервера: В памяти сервера, файловой системе, простой таблице базы данных (с идентификатором сеанса в качестве ключа и сериализованным объектом в качестве значения)
Преимущества: Легкий прямой доступ к состоянию сеанса
Состояние сеанса базы данных: Хранение на стороне сервера (разложение данных на несколько таблиц и доменов)
Преимущества: Сохранение состояния нелегко потерять
Проблема: Плохая изоляция (необходимо изолировать данные сеанса от записанных данных)
Вышеперечисленные три режима не являются взаимоисключающими и могут быть смешаны. При его использовании вам также необходимо обратить внимание на: сбой клиента, смерть сервера, отключение сетевого подключения.
2) Расширение сессии:
Миграция сеанса: Позволяет перенести сеанс с одного сервера на другой, чтобы один сервер мог обрабатывать один запрос, в то время как другие серверы обрабатывают другие запросы.
Преимущества: Сбалансированные серверы
Недостаток: Трудно найти состояние сеанса и поддержать миграцию сеанса.
Сходство с сервером: Все запросы для определенного сеанса могут обрабатываться только одним сервером
Недостаток: Когда клиент использует прокси-сервер, большой объем нагрузки может быть сосредоточен на сервере.