Я читал книгу о сервлетах Java, где я встретил HTTPSessionActivationListener
. Было указано, что в кластерной среде может быть только один объект HTTPSession, содержащий определенный идентификатор сеанса. Предположим, что в кластере 2 узла A и B -
первый запрос идет к узлу А. Здесь HTTPSession S1 создается вместе с атрибутами сеанса, а ответ возвращается клиенту.
Этот же клиент отправляет последующий запрос. Этот запрос направляется на узел B. Теперь объект сеанса S1 перемещается с узла A на узел B (активируется в узле B и пассивируется в узле A).
В этом случае должен ли объект сеанса наряду с атрибутами быть сериализуемыми? Что произойдет, если он не сериализуем?
Чтобы подсчитать количество активных сеансов, следует ли суммировать сеансы в обоих узлах, чтобы получить фактическое значение? Как это обычно делается?
Также я предполагаю, что ServletContext уникален для каждой JVM. Атрибуты, заданные как часть контекста сервлета, скопированы в контекст сервлета во всех узлах кластера?