Ответ 1
Я предлагаю JBossCache или EhCache (с помощью распределенного прослушивателя кешей). Я использовал оба, мне нравятся оба, и они оба соответствуют вашим требованиям.
Я ищу решение для распределенного кэширования Java. Мы хотели бы иметь особенности:
Мы проанализировали структуру, такую как TerraCotta, которая, кажется, является всем, что мы когда-либо хотели бы использовать в рамках кэширования... Однако, похоже, существует центральное кэширование node (ы), которое требуется, пункт-отказа.
Любые идеи, отличные от развертывания собственного решения?
Я предлагаю JBossCache или EhCache (с помощью распределенного прослушивателя кешей). Я использовал оба, мне нравятся оба, и они оба соответствуют вашим требованиям.
Попробуйте Hazelcast. Это платформа с открытым исходным кодом и высоко масштабируемая платформа распространения данных для Java. Он выполняет все ваши требования. Кроме того, он очень прост в использовании.
Недавно Terracotta приобрела Ehcache и выпустила плотную интеграцию API Ehcache с кластерным хранилищем Terracotta в простой пакет и требует только несколько дополнительных строк конфигурации Ehcache, чтобы перейти от одиночного node к кластерному, хотя вам также нужно запустить серверный процесс Terracotta.
Ehcache с версией Terracotta ES является открытым исходным кодом и может свободно использоваться. Коммерческие лицензии доступны, если вы хотите поддержку, большее масштабирование, компенсацию, поддержку исправлений и т.д.
Terracotta использует центральный сервер массив, а не один центральный сервер, поэтому нет единственной точки отказа! Вы можете настроить столько серверов горячего резервирования, сколько захотите, и эти серверы резервного копирования могут быть настроены так, чтобы они переходили на активный сервер. С помощью Terracotta FX (коммерческий продукт) вы также можете использовать несколько активных серверов.
Попробуйте Infinispan. Кэш Infinispan может использоваться как распределенный кэш, а также может использоваться в качестве реплицированного кеша. Нет возможности однопоточного сбоя. В режиме распределенного кэша он может содержать больше места, чем размер кучи. Подумайте, что в кластере есть 4 node, каждый с размером кучи 1GB и Infinispan, используемым в качестве реплицированного кеша, тогда общий кластер с размерами имеет 1 Gb, но если Infinispan используется как распределенный кеш и 2 копии для каждого элемента данных, тогда общий размер будет 2Gb. http://www.jboss.org/infinispan
Вы посмотрели на Coherence?
Мы нашли это очень полезным. Это не открытый источник или дешевый, хотя.
http://www.oracle.com/technology/products/coherence/index.html
Обычно одна точка отказа возникает, когда вся операция выполняется на одном node, и если этот node падает, вся операция может опускаться. решение этой проблемы заключается в использовании топологии, такой как Replica или replica. если один раз node опустится, вся операция переключится на другой node без потери каких-либо данных.
поскольку функции, которые вы ищете, можно найти в одном продукте, NCache, как упомянул Umer.
Я опаздываю на вечеринку, но вы попробовали TayzGrid, открытый java-распределенный кеш. Также известна как сетка данных или памяти значений в памяти.
Он отвечает на все ваши основные потребности
- Distributed
- Auto-Discovery
- Redundancy
- Non-Centralized
Он также управляет передовыми сценариями переключения при сбое, такими как разделять мозг и внезапные перезагрузки. Все узлы интеллектуальны, поэтому полностью распределены.
Вы также можете выбрать, какую топологию вы хотите использовать (раздел или реплицированный). Если вы хотите использовать более продвинутые топологии (раздел реплики), вы можете купить лицензию.
Terracotta также предлагает распределенный кеш.