Apache Kafka - Arquitetura de Cluster
Dê uma olhada na ilustração a seguir. Ele mostra o diagrama de cluster de Kafka.
A tabela a seguir descreve cada um dos componentes mostrados no diagrama acima.
S.Não | Componentes e Descrição |
---|---|
1 |
Broker O cluster Kafka geralmente consiste em vários brokers para manter o equilíbrio de carga. Os corretores Kafka não têm estado, portanto, usam o ZooKeeper para manter o estado do cluster. Uma instância do broker Kafka pode lidar com centenas de milhares de leituras e gravações por segundo e cada bro-ker pode lidar com TB de mensagens sem impacto no desempenho. A eleição do líder do corretor Kafka pode ser feita pelo ZooKeeper. |
2 |
ZooKeeper ZooKeeper é usado para gerenciar e coordenar o corretor Kafka. O serviço ZooKeeper é usado principalmente para notificar o produtor e o consumidor sobre a presença de qualquer novo corretor no sistema Kafka ou falha do corretor no sistema Kafka. De acordo com a notificação recebida pelo Zookeeper sobre a presença ou falha do corretor, o produtor e o consumidor tomam decisões e começam a coordenar suas tarefas com algum outro corretor. |
3 |
Producers Os produtores enviam dados aos corretores. Quando o novo broker é iniciado, todos os produtores o procuram e automaticamente enviam uma mensagem para esse novo broker. O produtor Kafka não espera por confirmações do corretor e envia mensagens tão rápido quanto o corretor pode manipular. |
4 |
Consumers Como os corretores Kafka não têm estado, o que significa que o consumidor precisa manter quantas mensagens foram consumidas usando o deslocamento de partição. Se o consumidor reconhece um deslocamento de mensagem particular, isso implica que o consumidor consumiu todas as mensagens anteriores. O consumidor emite uma solicitação de pull assíncrona para o broker ter um buffer de bytes pronto para consumir. Os consumidores podem retroceder ou pular para qualquer ponto em uma partição simplesmente fornecendo um valor de deslocamento. O valor de compensação do consumidor é notificado pelo ZooKeeper. |