DEV Community

Criando um cluster do Kafka com Docker Compose e desenvolvendo um Consumer e Producer em Golang

Kaike Castro on July 03, 2023

Introdução: O Apache Kafka é uma plataforma de streaming distribuída que permite o envio e a recepção de fluxos de eventos em tempo real...
Collapse
 
matfigueiredo profile image
Matheus Figueiredo

Parabéns pelo post! Excelente tutorial.

Surgiu uma dúvida para alguns casos de usos: Além do offset mais antigo, é possível definir um offset específico para o Consumer começar a consumir as mensagens?

Collapse
 
kaike_castro profile image
Kaike Castro • Edited

Existe sim na lib do sarama tem como você pegar o offset mais recente sarama.OffsetNewest ou passar o offset na mão

offset := int64(42)
partitionConsumer, err := consumer.ConsumePartition(topic, partition, offset)
Enter fullscreen mode Exit fullscreen mode

Porém vai se você optar por passar um offset específico, lembre-se de que será responsabilidade do consumidor controlar e gerenciar o progresso dos offsets. Você precisará acompanhar manualmente o offset atualizado e garantir que ele seja salvo corretamente para continuar a partir desse ponto em futuras leituras.