Совместное использование Ehcache между двумя webapps

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

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

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

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

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

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

Ответ 1

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

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

Ответ 2

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