Централизованный кеш-сервер. (Ehcache или Hazelcast) - PullRequest
8 голосов
/ 04 августа 2011

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

Поскольку эта система обмена сообщениями добавляет задержку при очистке записи кэша, в течение некоторого времени будет иметь место несоответствие между кэшами уровня приложения.

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

Мы подумываем об использовании Ehcache / Terracotta или Hazelcast , эти кэши содержат наборы результатов, информацию о блокировках и некоторые системные переменные.

Пожалуйста, предложите лучшее решение для кеша для нас.

Ответы [ 2 ]

9 голосов
/ 20 августа 2011

Я, вероятно, не могу предложить вам лучшее решение, но постараюсь дать несколько идей:

Hazelcast : предлагает очень простое в использовании распределенноеmap (и многое другое, на что стоит обратить внимание - распределенный SQL-запрос очень аккуратен):

Map<String, Object> map = Hazelcast.getMap("xxx");

и все готово.Работайте над картой, используя стандартные API.Настройка / настройка Hazelcast довольно проста (по сравнению с Ehcache / TC).Мониторинг веб-приложения также прост в использовании и полезен, но некоторые вещи отсутствуют.Производительность должна быть более чем достаточной для небольшого кластера (например, 2 ваших сервера).

Ehcache / Terracotta : привнесет в вашу установку новый компонент инфраструктуры (Terracotta Server) -оборотная сторона.Использование этой настройки в моем опыте довольно интенсивно с точки зрения того, что нужно изучить и опробовать.Обещание - производительность и возможности мониторинга уровня предприятия.

Если у вас нет предельно высоких требований к производительности, я лично выбрал бы Hazelcast и избежал сложности Ehcache / TC.

1 голос
/ 04 августа 2011

Мы использовали централизованный Memcached сервер (в качестве кэша Hibernate 2-го уровня и других требований кэширования), и он хорошо работает для нас.Мы используем Memcached с XMemcached клиентом и до сих пор работали без проблем.

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