Hazelcast

Introdução ao Hazelcast

Descubra o Hazelcast: plataforma de computação distribuída em memória para cache, filas, locks e processamento de dados.

Intermediário 38 min 28 pontos Leitura 0%

Nesta aula você vai

  • Definir o Hazelcast e seu papel além de cache simples chave-valor
  • Compreender o modelo de cluster peer-to-peer sem nó master fixo
  • Diferenciar Hazelcast de Redis, KeyDB e DragonflyDB em propósito e arquitetura

Introdução ao Hazelcast

Objetivos

Nesta aula você vai:

  • Entender o que é o Hazelcast e por que ele transcende a categoria "banco em memória"
  • Conhecer o modelo de cluster distribuído sem coordenador central permanente
  • Posicionar Hazelcast no espectro entre cache e plataforma de dados

Introdução

Se Redis é uma estante de consulta rápida, o Hazelcast é a biblioteca inteira — com salas de leitura, sistema de empréstimos, quadro de avisos e equipe de catalogadores trabalhando em conjunto. Não é apenas onde os dados repousam; é onde eles circulam, transformam-se e coordenam ações entre dezenas de aplicações Java (e além).

Fundado em 2008 e amplamente adotado no ecossistema enterprise Java, o Hazelcast oferece estruturas distribuídas em memória — IMap, filas, tópicos, locks, semáforos — embutidas diretamente na JVM da aplicação. Não há servidor separado obrigatório no modelo embedded: cada nó da aplicação pode ser membro do cluster.

Esta aula apresenta o protagonista antes de explorar seu data grid e casos de uso.

Conteúdo

O que é o Hazelcast?

Hazelcast é uma plataforma de computação distribuída em memória que fornece:

  • Distributed Data Structures — mapas, caches, filas, conjuntos replicados ou particionados
  • Computação distribuída — execução de tarefas nos nós onde os dados residem (data locality)
  • Integração enterprise — Spring, JCache (JSR-107), Kubernetes, observabilidade
  • Modo cliente-servidor ou embedded — flexibilidade de deploy

Linguagem nativa: Java (com clientes para .NET, Node, Python, C++). Diferente de Redis, não é primariamente um servidor externo acessado por protocolo texto — é biblioteca que forma cluster com seus pares.

Modelo de cluster peer-to-peer

┌─────────┐     ┌─────────┐     ┌─────────┐
│  App A  │◄───►│  App B  │◄───►│  App C  │
│ (membro)│     │ (membro)│     │ (membro)│
└─────────┘     └─────────┘     └─────────┘
     │               │               │
     └───────────────┴───────────────┘
           Particionamento automático
           + backup opcional por partição

Características:

  • Sem master fixo — todos os membros são iguais (embora existam roles transitórios para coordenação)
  • Particionamento — dados distribuídos em 271 partições padrão (configurável) via hash da chave
  • Backups — cada partição pode ter réplicas em outros nós para tolerância a falha
  • Auto-discovery — multicast, TCP/IP ou integração Kubernetes para formação de cluster

Hazelcast vs. Redis e similares

Dimensão Redis / KeyDB / Dragonfly Hazelcast
Modelo Servidor centralizado Cluster embedded ou cliente-servidor
Protocolo RESP (texto) Protocolo binário proprietário
Linguagem Agnóstico Java-first, clientes multi-linguagem
Estruturas Comandos Redis APIs tipadas (IMap, IQueue, ILock)
Computação Lua scripts Entry processors, Jet (stream processing)
Operação Instância Redis separada Pode viver dentro do processo da app

Redis brilha como cache compartilhado entre linguagens. Hazelcast brilha quando a lógica e os dados precisam coexistir no mesmo runtime Java com semântica de objetos e transações distribuídas.

Primeiro exemplo — IMap

Dependência Maven:

<dependency>
  <groupId>com.hazelcast</groupId>
  <artifactId>hazelcast</artifactId>
  <version>5.3.0</version>
</dependency>

Código mínimo:

import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.map.IMap;

public class PrimeiroCluster {
  public static void main(String[] args) {
    HazelcastInstance hz = Hazelcast.newHazelcastInstance();
    IMap<String, String> livros = hz.getMap("acervo");

    livros.put("001", "Dom Casmurro");
    livros.put("002", "Memórias Póstumas");

    System.out.println(livros.get("001")); // Dom Casmurro
  }
}

Execute duas instâncias JVM: ambas veem o mesmo mapa acervo. Dados particionados automaticamente. Mágica de cluster sem configurar Redis externo.

Edições e evolução

  • Hazelcast Platform (open source + enterprise) — data grid, Jet para streaming
  • Hazelcast Cloud — managed service
  • Recursos enterprise: segurança avançada, WAN replication, suporte comercial

Para aprendizado, a edição open source basta. Para produção crítica, avalie necessidade de suporte e features enterprise (WAN, security modules).

Quando a metáfora muda

Redis responde perguntas: "qual o valor da chave X?". Hazelcast participa da narrativa: "dado X neste nó, execute esta lógica sem mover X pela rede". Essa diferença de data locality define se você precisa de um cache ou de uma plataforma.

Resumo

  • Hazelcast é plataforma de computação distribuída em memória, não apenas cache chave-valor
  • Cluster peer-to-peer particiona dados automaticamente com backups configuráveis
  • Modelo embedded integra estruturas distribuídas diretamente na JVM Java
  • Comparado a Redis, Hazelcast privilegia ecossistema Java, APIs tipadas e computação nos dados
  • Escolha Hazelcast quando aplicações Java precisam de coordenação distribuída além de GET/SET