Aprendendo os conceitos Apache Kafka

O Apache Kafka é uma plataforma de fluxo distribuída usada por muitas empresas para inúmeras cargas de trabalho em lote, bem como a integração de dados em tempo real e casos de uso de fluxo de dados

Diagrama de arquiteturaKafka.
The diagram shows a Kafka architecture.

A lista a seguir define alguns conceitos do Apache Kafka:

Intermediários

O Apache Kafka é um sistema de mensagens distribuídas. Um cluster Kafka consiste em um conjunto de brokers. Um cluster tem um mínimo de três brokers.

Diagrama de intermediários.
Diagram that shows an example cluster with three brokers.

Mensagens

Uma mensagem é uma unidade de dados em Kafka. Cada mensagem é representada como um registro, que inclui duas partes: chave e valor. A chave é comumente usada para dados sobre a mensagem e o valor é o corpo da mensagem. O Kafka usa os temos registro e mensagem de forma intercambiável.

Tópicos e partições

Cada tópico é um fluxo nomeado de mensagens. Um tópico é composto de uma ou mais partições. As mensagens em uma partição são ordenadas por um número que é chamado de deslocamento. Com várias partições distribuídas entre os brokers, a escalabilidade de um tópico é aumentada.

Se um tópico tiver mais de uma partição, ele permitirá que os dados sejam alimentados em paralelo para aumentar o rendimento distribuindo as partições no cluster. O número de partições também influencia o balanceamento da carga de trabalho entre os consumidores.

Para obter mais informações, consulte Liderança de partição.

Diagrama de tópicos e partições.
The diagram shows one topic with three partitions that are spread across three brokers.

Replicação

Para melhorar a disponibilidade, cada tópico pode ser replicado em diversos brokers. Para cada partição, um dos brokers é o líder e os outros são os seguidores.

A replicação trabalha pelos seguidores buscando repetidamente mensagens do líder.

Diagrama de replicação.
The diagram shows a topic partition that is replicated across three brokers.

Réplicas em sincronização

Uma réplica do seguidor que esteja acompanhando o líder da partição está em sincronização. Qualquer seguidor com uma réplica em sincronização pode se tornar o líder sem perder nenhuma mensagem.

Se o líder da partição falhar, outro líder será escolhido entre os seguidores. Todas as réplicas são para estar geralmente em sincronia. É aceitável que uma réplica esteja temporariamente fora de sincronia enquanto se recupera de uma falha.

Em-sincronia-diagrama de réplicas.
The diagram shows a topic partition that is replicated across three brokers and staying in-sync across all replicas.

Produtores

Um produtor é um aplicativo cliente que publica mensagens para um ou mais tópicos.. Um produtor pode publicar um ou mais tópicos e escolher, opcionalmente, a partição que armazena os dados.

Você também pode configurar seu produtor para priorizar a velocidade ou a confiabilidade, escolhendo o nível de confirmação que o produtor recebe pelas mensagens que publica.

Para obter mais informações, consulte Produzindo mensagens.

Diagrama de produtores.
The diagram shows a producer publishing messages to one topic across three brokers.

Consumidores

Um consumidor é um aplicativo cliente que lê mensagens de um ou mais tópicos e as processa. A diferença entre a posição atual de um consumidor e a mensagem mais nova em uma partição é conhecida como atraso de deslocamento.

Se o atraso aumentar ao longo do tempo, isso será um sinal de que o consumidor não é capaz de acompanhar. No curto prazo, isso não é um problema, mas, eventualmente, o consumidor poderá ficar sem mensagens se o período de retenção for excedido.

Para obter mais informações, consulte Consumindo mensagens.

Diagrama de consumidores.
The diagram shows a consumer processing messages from one topic across three brokers.

Grupos de consumidores

Um grupo de consumidores contém um ou mais consumidores que trabalham juntos para processar as mensagens de um tema. As mensagens de uma única partição são processadas por um consumidor em cada grupo.

Em qualquer momento, cada partição é designada a somente um consumidor no grupo. Essa atribuição garante que as mensagens em cada partição sejam processadas em ordem.

Se existirem mais partições do que consumidores em um grupo, alguns consumidores têm várias partições. Se existirem mais consumidores do que partições, alguns consumidores não têm partições.

Diagrama de grupos de consumidores.
The diagram shows a consumer processing messages from one topic across three brokers.

Mais informações

Para obter mais informações, consulte a documentação Apache Kafka.