Как я могу поделиться переменными между различными экземплярами WebSphere со сбалансированной нагрузкой?

У меня есть веб-приложение, развернутое на сервере WebSphere Community Edition (WAS CE) на четырех разных компьютерах для целей балансировки нагрузки. Я хочу хранить некоторые постоянные переменные / объекты среди четырех серверов. Если я изменю переменную в веб-приложении на одном сервере, эта же копия должна быть доступна для веб-приложений на трех других серверах. Поскольку эти переменные / объекты не связаны с пользовательским сеансом, sticky-сеанс здесь не поможет. Является ли JNDI лучшим решением? Пожалуйста, поделитесь своими знаниями о любых других лучших решениях / методах.

ОС: Linux
Сервер приложений: редакция WebSphere Community (WAS CE).

1 ответ

Решение

Если эти значения не меняются во время выполнения, поместите эти переменные в ServletContext сфера будет наиболее разумным.

Если эти значения изменятся во время выполнения, они должны будут находиться на носителе, доступном для всех серверов в вашем кластере. Я не уверен, что JNDI будет работать для вас (я не могу вспомнить ничего из спецификации JEE, предписывающей синхронизацию деревьев JNDI между контейнерами); структуры распределенного кэша, такие как EHCache, имели бы больше смысла.

Другие вопросы по тегам