Постоянство сеанса на основе файлов cookie между модулями в kubernetes - PullRequest
0 голосов
/ 03 октября 2019

Без сохранения состояния - это способ использовать службы, работающие в модулях, однако я пытался переместить приложение с сохранением состояния, которое должно выполнять сохранение сеанса, если один модуль работает, из соображений устойчивости.

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

Существует ли отраслевой стандартный способ решения этой проблемы без необходимости рефакторинга кода приложений путем сохранения сеанса с использованием некоторого модуля коляски?

Ответы [ 2 ]

1 голос
/ 03 октября 2019

Да. Храните сессию где-нибудь. Spring boot из коробки поддерживает MongoDB, Redis, Hazelcast или любую базу данных JDBC.

Spring Boot обеспечивает автоматическую настройку Spring Session для широкого спектра хранилищ данных. При создании веб-приложения сервлета можно автоматически настроить следующие хранилища:

JDBC Redis Hazelcast MongoDB При создании реагирующего веб-приложения можно автоматически настроить следующие хранилища:

Redis MongoDBЕсли в пути к классам присутствует один модуль Spring Session, Spring Boot автоматически использует эту реализацию хранилища. Если у вас есть более одной реализации, вы должны выбрать StoreType, который вы хотите использовать для хранения сеансов. Например, чтобы использовать JDBC в качестве внутреннего хранилища, вы можете настроить свое приложение следующим образом:

spring.session.store-type = jdbc

[Подсказка] Вы можете отключить Spring Sessionустановив тип хранилища в none. Каждый магазин имеет определенные дополнительные настройки. Например, можно настроить имя таблицы для хранилища JDBC, как показано в следующем примере:

spring.session.jdbc.table-name = SESSIONS

Для настройкивремя ожидания сеанса вы можете использовать свойство spring.session.timeout. Если это свойство не задано, автоконфигурация возвращается к значению server.servlet.session.timeout.

1 голос
/ 03 октября 2019

Сеансы, основанные на файлах cookie, основаны на файлах cookie. Которые хранятся в браузере пользователя, а не в вашем приложении. Если вы имеете в виду сеанс на основе БД с идентификатором сеанса cookie или подобным, то вам нужно будет хранить вещи в какой-то центральной базе данных. Я бы порекомендовал использовать реальную базу данных, такую ​​как postgres, но я полагаю, что ничто не мешает вам использовать общий том:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...