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.
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