2013-09-04 3 views
0

У меня есть приложение, которое развертывается в кластере с 2 jvms. Веб-приложение имеет кэш, реализованный с использованием Mbeans, и кеш работает на каждом jvm. кеш обновляется с шаблоном запроса */refresh. Проблема в том, что когда запрос проходит через ODR, он перенаправляет его только на один сервер, а кеш только для одного сервера обновляется. Как решить эту проблему? Репликация кеша? Я думаю, что для реализации репликации кэша может быть много работы. Любые другие решения? Websphere api's?Получить текущий экземпляр приложения, используя websphere api?

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

+0

Что вы используете для реализации кэш? –

ответ

1

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

2

Способ Websphere для этого состоит в использовании функции DynaCache с DRS. DynaCache - это своего рода хэш-карта, которая может быть распределена между членами кластера DRS. У dynacache есть API, DistributedMap, который расширяет java.util.Map. Существует также большая конфигурация (через AdminConsole и cachespec.xml) и возможности мониторинга (PMI с TPV).

Технический обзор: http://pic.dhe.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=%2Fliaag%2Fcache%2Fpubwasdynacachoverview.htm

DistributedMap API http://pic.dhe.ibm.com/infocenter/adiehelp/v5r1m1/index.jsp?topic=%2Fcom.ibm.wasee.doc%2Finfo%2Fee%2Fjavadoc%2Fee%2Fcom%2Fibm%2Fwebsphere%2Fcache%2FDistributedMap.html

Хорошая статья от DeveloperWorks http://www.ibm.com/developerworks/websphere/library/techarticles/0906_salvarinov/0906_salvarinov.html

Смежные вопросы