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
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.
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.
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.
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.
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.
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.
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.
Mais informações
Para obter mais informações, consulte a documentação Apache Kafka.