Доступ к одному и тому же ehcache из 2 разных военных файлов - PullRequest
5 голосов
/ 18 декабря 2008

У меня есть 2 разных веб-приложения (упакованные в разные военные файлы), которым нужно поделиться некоторыми данными через кеш (ehcache). Я хочу проверить эту идею с вами, чтобы увидеть, работает ли она.

Моя идея - создать сервис, который загружает / получает доступ к ehcache и упаковывает его в jar. Затем упакуйте эту банку в две войны:

  • WAR1: ehcache-service.jar
  • WAR2: ehcache-service.jar

Будет ли ehcache работать в такой конфигурации?

Ответы [ 2 ]

5 голосов
/ 18 декабря 2008

Вам необходимо создать отдельный файл (ы) со всеми классами (и всеми их зависимостями), экземпляры которых вы планируете кэшировать, а затем развернуть этот файл, а также ehcache.jar как библиотеку (в зависимости от того, какой сервер приложений вы используете процедура может отличаться), в случае с Tomcat 6 это означает просто скопировать файлы jar в папку lib.

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

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


Кроме того, вы должны знать, что кеширование и совместное использование не обязательно одно и то же. Кеш это оптимизация. Если вы помещаете экземпляр объекта в кеш, он может быть немедленно удален, если, например, в кеше недостаточно места для хранения или настройки политики удаления. Поэтому, возможно, вам придется пересмотреть, как вы планируете использовать ecache в целом.

3 голосов
/ 18 декабря 2008

Проблема вашей конфигурации заключается в том, что каждая война будет загружаться с отдельным ClassLoader и будет два экземпляра вашего ehcache-сервиса - каждое веб-приложение имеет свою собственную копию сервиса. Вы можете реализовать свой сервис кэширования как веб-сервис (например) и использовать его из war1 и war2.

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