Skip to content

Instantly share code, notes, and snippets.

@faelp22
Created July 25, 2024 12:31
Show Gist options
  • Save faelp22/262c879bc62ecdebe71f73f976d74f99 to your computer and use it in GitHub Desktop.
Save faelp22/262c879bc62ecdebe71f73f976d74f99 to your computer and use it in GitHub Desktop.
Simples Golang Kafka Producer
package main
import (
"context"
"fmt"
"log"
"time"
"github.com/segmentio/kafka-go"
)
func main() {
// Configurações do escritor Kafka
w := kafka.NewWriter(kafka.WriterConfig{
Brokers: []string{"localhost:9092"}, // Endereço do broker Kafka
Topic: "my-topic-2", // Nome do tópico
Balancer: &kafka.LeastBytes{}, // Balanceador de partição
})
defer w.Close()
// Variável para armazenar a chave da mensagem
key := 1
for {
// Cria a mensagem
msg := kafka.Message{
Key: []byte(fmt.Sprintf("%d", key)), // Define a chave como uma string numérica
Value: []byte(fmt.Sprintf("Teste %d", key)), // Define o valor da mensagem
}
// Escreve a mensagem no Kafka
err := w.WriteMessages(context.Background(), msg)
if err != nil {
log.Printf("Erro ao escrever mensagem: %v\n", err)
} else {
fmt.Printf("Mensagem enviada: chave = %d, valor = %s\n", key, msg.Value)
}
// Incrementa a chave
key++
// Aguarda 1/3 de segundo (333 milissegundos) antes de enviar a próxima mensagem
time.Sleep(333 * time.Millisecond)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment