совместное использование Ehcache между двумя веб-приложениями - PullRequest
10 голосов
/ 26 ноября 2011

У меня есть 2 веб-приложения, веб-приложение администратора и само веб-приложение.Оба совместно используют доступ к хранилищу mysql, а Ehcache используется для кэширования сведений о пользователе, чтобы предотвратить попадание пользовательского поиска в серверную часть по запросу REST API.

Проблема, с которой я столкнулся, заключается в том, что приложение администратора можно использовать (редко добавляю) для обновления учетных данных пользователей, скажем, пароля или имени пользователя, изменения уровня авторизации и т. Д. Теперь, когда это происходит, янеобходимо, чтобы пользовательский кэш был признан недействительным или очищен, чтобы основное веб-приложение могло затем нажать на базу данных при поиске пользователя, чтобы получить сведения о новых пользователях в кэш.

В настоящее время это происходит, но очистка кэша не видна веб-приложению основного клиента.

Как разделить ehcache между двумя веб-приложениями (размещенными в Jetty или Tomcat)?В настоящее время я использую Jetty, но планирую перейти на Tomcat.

Я использую аннотации Spring 3, Jersey, Hibernate, MySQL и Google Ehcache.

спасибо за любую помощь.

Ответы [ 2 ]

6 голосов
/ 28 сентября 2012

У вас есть несколько вариантов здесь:

  • Вы можете использовать JGroups , чтобы объединить свои приложения в одно уведомление группа, а затем уведомить о конкретной записи кэша обновление / недействительность. Поэтому при получении такого уведомления ваша главная веб-приложение обновит свою локальную запись EhCache.
  • Вы можете добавить Terracotta распределенный кеш как EhCache. реализация (это на самом деле не меняет ваш код, так как он просто подключается за EhCache API). Тогда ваш EhCache становится распределенным, поэтому изменения, внесенные в веб-приложение администратора, видны веб-приложение. Примечание: Терракоте требуется коммерческая лицензия.
  • Вместо EhCache вы можете использовать MemCached , который позволяет
    наличие одного общего кэша среди нескольких приложений. Так что изменения, сделанные в вашем Веб-приложение администратора отображается в вашем реальном веб-приложении. См. MemCached
    . учебник
3 голосов
/ 06 июля 2012

Ehcache имеет REST API , который вы можете развернуть как веб-приложение. Таким образом, и администратор, и веб-приложение приложения могут совместно использовать кеш.

...