Escalabilidad de Hazelcast

Hace un rato hablábamos sobre Hazelcast,

En este tipo de soluciones es fundamental estar seguro de que el producto escalará horizontalmente sin problemas.

En este sentido son interesantes estos artículos:

· Running Hazelcast on a 100 Node Amazon EC2 Cluster: en el que se muestra como se montó Hazelcast en un cluster Amazon EC2 de 100 instancias de tipo m1.small.

En este screencast se muestra como con esta configuración el cluster era capaz de realizar 400.000 operaciones por segundo (tengamos en cuenta que estamos hablando de las instancias de Amazon más pequeñas).

· Caching and Processing 2TB Mozilla Crash Reports in memory with Hazelcast: en este otro se muestra como con Hazelcast se procesaban al día los crash reports de Mozilla en un cluster de 50 nodos Hazelcast.

¿Qué es Hazelcast?

Hazelcast es un Data Grid en Java, o dicho de otra forma una plataforma escalable para la distribución de datos.

Entre sus características más interesantes:

· Implementaciones distribuidas de Set,List,Map,Lock,MultiMap

· Mensajería distribuida P/S

· Soporte transaccional e integración JEE vía JCA

· Soporte encriptación a nivel de sockets

· Persistencia síncrona o asíncrona

· Clusterizado Sesión HTTP

· Discovery dinámico

· Monitorización JMX

· Escalado dinámico

· Particionado dinámico

· Fail-over dinámico

· Modelo open-source con 2 versiones

Entre los usos típicos de Hazelcast tenemos:

· Compartir datos/estados entre varios servidores: como compartición sesión Web

· Cacheo distribuido de datos

· Comunicación segura entre servidores

· Particionado de datos en memoria

· Distribución de trabajo entre servidores

· Procesamiento paralelo

· Gestión fail-safe de datos

· (esta es mía) para casos en los que el coste de Coherence no es asumible pero necesitamos características avanzadas.

API:

Su API es muy sencilla:

Con el Hazelcast Client:

Ofrece diferentes módulos, como para Hibernate (caché segundo nivel) o Spring.

VERSIONES

Ofrece 2 versiones: Community y Enterprise, además de una consola centralizada (Management Center). La versión Enterprise es de pago y ofrece características avanzadas como Seguridad y Elastic Memory.

QUERY:

Una funcionalidad muy interesante es la capacidad de hacer Querys sobre los datos cacheados ofreciendo:

Distributed SQL Query: que ofrece una sintaxis SQL bastante completa:

La sintaxis permite queries como estas:

Y API Criteria JPA:

BACKUP

Hazelcast distribuye los map entries entre los miembros del cluster (JVMs), de modo que cada JVM almacena parte de los datos. Además se puede configurar el número de copias de backup (los datos se copian a otras JVMs).

PERSISTENCIA:

Permite cargar y almacenar las map entries en un datastore persistence (como una BD).

ESTADÍSTICAS

Hazelcast almacena estadísticas sobre cada Map Entry:

INDEXADO:

Las Map Entries pueden indexarse para hacer queries más rápido.

EVENTOS DISTRIBUIDOS:

Permite registrarse a cuando las entries son añadidas, actualizadas o eliminadas. Los listeners son distribuidos.

Si os ha interesado podéis acceder a su manual aquí en el que se explican funcionalidades avanzadas como memoria elástica, seguridad,

Publicado en Java. 2 Comments »
A %d blogueros les gusta esto: