2012-04-03 41 views
8

Intento encontrar cómo implementar el almacenamiento en caché distribuido para las aplicaciones.¿Es posible implementar el almacenamiento en caché distribuido utilizando Ehcache sin Terracotta Enterprise Suite?

Ehcache ya se utiliza para el almacenamiento en caché en mi proyecto, es por eso que busco cómo resolver este problema usándolo. Pero, desafortunadamente, parece que Terracotta Enterprise Suite es necesaria para esto y es comercial. ¿No es así? ¿Hay alguna otra solución para usar Ehcache para el almacenamiento en caché distribuido (RMI o cualquier otra cosa)?

Respuesta

2

No necesita terracotta enterprise suite para agrupar sus instancias de Ehcache. Así que usted puede utilizar clústeres con Ehcache & terracota hoy, con OSS puro:

http://www.ehcache.org/documentation/configuration/distributed-cache-configuration

Editar: Este enlace ha caducado. A continuación se muestra el nuevo enlace relacionado con la memoria caché agrupada http://www.ehcache.org/documentation/3.4/clustered-cache.html

Ahora bien, si usted necesita la replicación, puede utilizar otros mecanismos como la RMI de hecho:

http://www.ehcache.org/documentation/replication/index

Sin embargo, sólo el agrupamiento de terracota sería lograr que HA y características como garantías de consistencia y similares ...

+1

Intenté usar Ehcache con Terracotta OSS, pero fallé :( Tengo dos nodos en servidores separados (A, B). Cada nodo tiene su propio ehcache.xml (CM). Cada CM contiene y tiene una memoria caché, llamada TestCache, con dentro. Ok, la aplicación 'A' puso el elemento en la memoria caché. Ahora, si 'A' se solicitará nuevamente, devolverá el elemento almacenado en caché. Pero 'B' se perderá . caché Como veo en dev-consola - terracota entender que es Administrador de caché común y la memoria caché también es común tanto para su aplicación (porque muestra aciertos y errores) Qué necesito para compartir cachés manualy – Gadget

+0

Quiero decir,.? ¿Debo configurar algunas configuraciones adicionales para tc-config.xml? o a ehcache.xml? En todos los ejemplos, se usa el elemento 'raíz' para "compartir" los administradores de la memoria caché. Pero no tengo campos de cacheManager en el código. Todo descrito solo dentro de ehcache.xml. Además, hay una configuración de 'clases instrumentadas' en tc-config.xml. ¿Debo enumerar todas las clases de objetos almacenados en caché manualmente? Parece extraño si es así, porque espero que ehcache.xml sea suficiente. – Gadget

+0

agregando un elemento terracottaConfig dentro del ehcache, apuntando al servidor de Terracotta, y agregar un elemento de terracota a cada caché que desee agrupar debería ser suficiente para comenzar.¿Estás seguro de que se está recogiendo el archivo xml correcto? –

0

Quizás también quieras probar Hazelcast. Es de código abierto, caché distribuido y es muy fácil de usar.

PS: Yo trabajo para Hazelcast

+0

Hazelcast Enterprise (no es gratis, por dinero) es necesario para la replicación WAN. – AlexS

1

hay diferentes maneras de implementar caché distribuida utilizando el mecanismo de ehcache. Uno puede estar usando RMI o Jgroups.

En uno de los proyectos, pasé por la misma situación y, después de algunas investigaciones, descubrí que Usar el servidor Redis para la administración de la memoria caché es una solución fácil y efectiva.

Lo sugiero como una respuesta porque si intenta utilizar ehcache llevará tiempo y aumentará la complejidad, y puede tener múltiples gestores de caché en su área de trabajo.

Cuestiones relacionadas