Вы не должны не использовать веб-сеансы в качестве базы данных в памяти. Большинство баз данных в оперативной памяти позволяют точно настроить распределение данных по узлам. У них также есть поддержка транзакций и восстановления. Веб-сессии — это очень простая репликация объектов Java между узлами, и вам не следует даже хранить там важные данные. Основная цель репликации данных в объекте веб-сеанса состоит в том, чтобы в случае сбоя сервера сохранить пользователя на другом сервере и продолжить его работу, т.е. некоторый веб-интерфейс с отслеживанием состояния.
В зависимости от того, какую редакцию WebLogic вы используете (на основании какой лицензии она была приобретена), у вас уже может быть доступ к Coherence, решению Oracle In-memory Data Grid.
Обновите вопросы OP с правильными ответами ниже.
Поскольку на самом деле это не сеанс пользователя, могу ли я создать сеанс при запуске приложения, а затем использовать функцию репликации сеанса Weblogic для репликации сеанса?
- Или я должен рассмотреть репликацию контекста приложения Weblogic и возможно ли это?
Объекты в области приложения (веб-приложения) не реплицируются. Вы можете использовать JNDI для этого, но опять же я не рекомендую ни один из этих подходов (включая прослушиватель запуска, чтобы каким-то образом подталкивать вещи к сеансу).
Обязательно ли мне иметь кластер Weblogic, чтобы использовать репликацию сеанса WL, или это можно сделать и без него?
Да, WebLogic Cluster необходим, если вы хотите репликацию сеанса. Существуют некоторые требования помимо использования кластера. См. главу документации 6 Отказоустойчивость и репликация в кластере в WLS 12.2. 1 Документы.
Предположим, у меня есть 4 WL-сервера (работающих на разных серверах) и все в одном кластере. Если какой-либо узел/сервер получил данные и поместил их в сеанс, будет ли он автоматически реплицироваться на всех других узлах/серверах?
Не на все серверы, только на некоторые. Дополнительные сведения об использовании групп репликации см. в документации. опции.
Предположим, я отключил 3 узла/сервер, после перезапуска этих узлов мои живые узлы будут автоматически передавать данные на начальные узлы?
Это не так просто, но короче, это не работает так, как вы хотели. Сеансы не реплицируются на все узлы в кластере WebLogic. Репликация выполняется на достаточное количество узлов (основной узел и дополнительный узел). Дополнительные сведения см. в документах по WLS для версии 12.2.1.
Опять же, вы не должны использовать функцию репликации сеанса HTTP в качестве базы данных в памяти. Он вообще не был предназначен для этого. Вместо «создания своего рода базы данных в памяти» используйте ее.
Но если вы действительно хотите использовать HTTP-сессию в качестве «базы данных в памяти», по крайней мере, убедитесь, что вы используете Coherence*Web в качестве механизма репликации в WebLogic.
person
Bruno Borges
schedule
03.02.2016