технология распределенного кэша - PullRequest
5 голосов
/ 06 октября 2010

Меня интересуют технологии обмена сообщениями с открытым исходным кодом и / или распределенного кэша, которые удовлетворяют следующим требованиям:

  • Несколько экземпляров веб-приложения Java с балансировкой нагрузки (возможно, в Amazon EC2)
    • Возможно изменение количества экземпляров во времени для масштабирования.
  • Когда запрос приходит с идентификатором FOO , событие кэшируется в памятина период времени.
    • Продолжительность времени, в течение которого событие кэшируется, указывается в полезной нагрузке запроса и варьируется между запросами.
    • Продолжительность относительно мала (порядка минут).
    • Постоянство не требуется.В редких случаях, когда происходит что-то драматическое и сервер должен быть перезагружен, можно забыть о прошлых событиях.
  • Информация о запросе должна распространяться на все экземпляры сервера.
    • Распространение информации не должно существенно влиять на производительность серверов, и особенно задержки ответа.Он должен быть асинхронным при обработке запроса.Тем не менее, он должен быть достаточно быстрым и масштабироваться для большого количества запросов.
    • Это нормально, если разные экземпляры сервера не синхронизированы.Т.е. допустимо, чтобы в течение некоторого короткого периода времени (порядка секунд) экземпляр сервера 2 не знал, что FOO происходил на экземпляре сервера 1, пока эта информация не была передана ему.

Любые идеи будут оценены.Если для каких-либо решений требуется особая конфигурация / настройка, чтобы соответствовать требованиям, пожалуйста, укажите, что мне нужно сделать.

РЕДАКТИРОВАТЬ Я не имею в виду, что текущие ответы неуместно, но я не был явно в моем вопросе.Пожалуйста, не просто указывайте на каждую библиотеку MQ и JSR-107 под солнцем.Мои требования удовлетворяют только те, кому есть основания полагать.

Ответы [ 4 ]

3 голосов
/ 06 октября 2010

Hazelcast - отличный инструмент. У них есть некоторые интересные результаты производительности на EC2 .

3 голосов
/ 06 октября 2010

EhCache поддерживает распределенное и реплицированное кэширование .

Кроме того, вы можете установить время жизни, когда элементы добавляются в кэш.

0 голосов
/ 06 сентября 2011

вы также можете проверить NCache , это кэш-дистрибутив, совместимый как с приложениями .NET, так и с Java

0 голосов
/ 06 октября 2010

Возможность просмотра - JBoss кеш

...