Repositório com os exemplos práticos do curso Apache Kafka (~6h). Aqui você exercita produção e consumo de mensagens, particionamento, confiabilidade, serialização e integração com Schema Registry, seguindo a sequência das aulas.
Neste curso, você aprende a trabalhar com o Apache Kafka para processar grandes volumes de dados em tempo real. Os exemplos mostram arquitetura, técnicas de produção/consumo e integração de dados.
Principais tópicos:
- Introdução ao Kafka e casos de uso
- Arquitetura: brokers, topics, partições e replicação
- Producers e consumers: configuração, particionamento e garantias de entrega
- Kafka Connect: conectores source/sink e transformações de dados
- Schema Registry: gestão e evolução de esquemas (Avro/Protobuf/JSON Schema)
Habilidades ao final: configurar Kafka para produção e consumo confiáveis, integrar sistemas com Connect e manter compatibilidade de dados via Schema Registry.
Cada pasta corresponde a um capítulo/prática. Use o Producer.csproj ou Consumer.csproj dentro de cada módulo conforme indicado.
02-02-producer/: produtor básico02-03-consumer/: consumidor básico02-06-partitions/Producere02-06-partitions/Consumer: uso de partições03-01-acks/Producer: configurações de acknowledgments03-02-buffer-linger/Producer: buffer e linger03-03-retries/Producer: políticas de retry03-04-max-in-flight/Producer: controle de mensagens em voo03-05-idempotencia/Producer: idempotência03-06-serializer/Producer: serialização customizada03-07-compression/Producer: compressão04-02-heartbeats/Producere04-02-heartbeats/Consumer: heartbeats do consumer group04-03-commit/Producere04-03-commit/Consumer: commits de offset04-04-store-offset/Producere04-04-store-offset/Consumer: armazenamento de offsets04-05-auto-offset-reset/Consumer: política de auto offset reset04-06-deserializer/Producere04-06-deserializer/Consumer: desserialização customizada05-04-avrogen/Producere05-04-avrogen/Consumer: geração de classes Avro05-05-producer-avro/Producer: producer com Avro + Schema Registry05-06-consumer-avro/Consumer: consumer com Avro + Schema Registry
- .NET SDK instalado (mesma versão usada nos exemplos)
- Cluster Kafka acessível (local ou remoto) com os tópicos esperados criados
- Acesso ao Schema Registry para os exemplos Avro
- Garanta que o cluster Kafka e o Schema Registry (quando necessário) estão rodando.
- No diretório
src, execute o projeto desejado:
cd /samples/Kafka/src
# Exemplo: producer básico
DOTNET_ENVIRONMENT=Development dotnet run --project 02-02-producer/Producer.csproj
# Exemplo: consumer básico
DOTNET_ENVIRONMENT=Development dotnet run --project 02-03-consumer/Consumer.csprojAjuste as configurações (bootstrap servers, tópicos, schemas) nos arquivos Program.cs correspondentes, conforme sua infraestrutura.
- Teste primeiro com um tópico simples e uma única partição para entender o fluxo.
- Para exemplos de confiabilidade (acks/retries/idempotência), monitore latência e duplicidade de mensagens.
- Nos módulos de Avro, publique e consuma após registrar o schema para validar compatibilidade.
- Nos módulos de offset/commit, observe o deslocamento no consumer group para entender commits manuais x automáticos.