Кэширование с использованием спящего режима

У меня есть 2 приложения. Первое — это веб-приложение, через которое мы предоставляем справочные данные. Второе — это приложение на основе ESB, в котором используются справочные данные. Справочные данные меняются, но не очень часто. Нам нужно кэшировать справочные данные. веб-приложение (я не владелец) использовало спящий режим. Но мое приложение на основе ESB этого не сделало. Мы использовали только EHCache. Когда эталонные данные изменяются независимым веб-приложением, это должно быть отражено в приложении ESB. Мы реализовали с использованием очереди сообщений, то есть когда эталонные данные изменяются, веб-приложение отправляет сообщение в очередь сообщений. Наше приложение ESB прослушивает это сообщение и очищает его. кеш и кэширует данные еще раз. Это работает. Но это требует много времени. Как я могу использовать Hibernate, чтобы улучшить ситуацию?

С уважением, Субхенду


person Subhendu Mahanta    schedule 08.01.2011    source источник
comment
@Subendru Использование Hibernate не решит эту проблему. Если кеш очищается слишком часто, ваши справочные данные на самом деле не изменяются так редко, как вам хотелось бы. Если повторное заполнение кеша занимает слишком много времени, вы можете очистить только измененные записи кеша.   -  person Binil Thomas    schedule 02.02.2011


Ответы (2)


Насколько я вижу, это не проблема Hibernate. Я бы сказал, что это больше касается самого кэширования. Итак, я бы порекомендовал посмотреть некоторые распределенные кэши, особенно Infinispan. Таким образом, оба приложения могут совместно использовать один и тот же кеш и манипулировать им. Если вы просто используете Hibernate, но кеши все еще находятся на разных машинах с разными состояниями, вы столкнетесь с той же проблемой.

person jpkrohling    schedule 08.01.2011

Одним из решений может быть использование EHCache в приложении Hibernate, но вы говорите, что не имеете над ним никакого контроля...

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

person malejpavouk    schedule 08.01.2011