Arquitetura do Kafka

Introdução ao Apache Kafka

Mike Metzger

Data Engineering Consultant

Componentes do Kafka

  • Servidor Kafka
    • Um cluster com um ou mais computadores
    • Armazena dados
    • Gerencia comunicações
    • Também integra com outros sistemas (bancos de dados, logs etc.)
  • Clientes Kafka
    • Leem via consumidor Kafka
    • Escrevem via produtor Kafka
    • Processam dados conforme necessário
Introdução ao Apache Kafka

Servidor Kafka

  • Armazenamento, também chamado de Kafka Broker
    • Dados escritos por produtores são armazenados e organizados por tópicos
    • Tópicos são particionados, ou guardados em partes separadas
    • Mensagens/eventos vão para uma partição com base em um id do evento
    • Mensagens são recuperadas na mesma ordem em que foram escritas

Armazenamento e partições no Kafka

1 Imagem obtida em https://kafka.apache.org/intro
Introdução ao Apache Kafka

Partições e replicação

  • Kafka é tolerante a falhas
  • Se um sistema cair, outros fornecem os dados solicitados
  • Máx. de falhas: replicação - 1
  • Replicação máx. == número de servidores
  • Cópias de partições implementam a replicação

Kafka cluster, brokers, and topics.png

Introdução ao Apache Kafka

Exemplo

Kafka cluster, brokers, and topics.png

  • Cluster Kafka com 3 brokers
  • 3 tópicos definidos
  • Replicação 2x == pode perder 1 sistema
  • Broker 1 tem cópias dos Tópicos 1 e 2
  • Broker 2 tem cópias dos Tópicos 2 e 3
  • Broker 3 tem cópias dos Tópicos 1 e 3
  • Cada tópico é distribuído por 2 brokers no cluster
Introdução ao Apache Kafka

Exemplo com 1 falha

Kafka cluster, brokers, and topics - 1 failed broker.png

  • Broker 2 falha
  • Fator de replicação 2x
    • 2 - 1 == suporta 1 falha
  • Cada tópico ainda tem ao menos uma cópia no cluster
Introdução ao Apache Kafka

Exemplo com 2 falhas

Kafka cluster, brokers, and topics - 2 failed brokers.png

  • 2 brokers com falha
  • Fator de replicação 2x
  • Mais falhas que o suportado (1 sistema)
  • O Tópico 2 não está mais disponível no cluster
    • Tópicos 1 e 3 ainda disponíveis, então não é falha total
Introdução ao Apache Kafka

Vamos praticar!

Introdução ao Apache Kafka

Preparing Video For Download...