Use segmentio/kafka-go for a lightweight, pure-Go client or confluent-kafka-go for a high-performance wrapper around the official C library. Choose based on whether you need simplicity or advanced features like exactly-once semantics.
// segmentio/kafka-go example
import "github.com/segmentio/kafka-go"
reader := kafka.NewReader(kafka.ReaderConfig{
Brokers: []string{"localhost:9092"},
Topic: "my-topic",
GroupID: "my-group",
})
for {
msg, err := reader.ReadMessage(context.Background())
if err != nil { break }
// process msg.Value
}
// confluent-kafka-go example
import "github.com/confluentinc/confluent-kafka-go/kafka"
consumer, _ := kafka.NewConsumer(&kafka.ConfigMap{
"bootstrap.servers": "localhost:9092",
"group.id": "my-group",
"auto.offset.reset": "earliest",
})
consumer.SubscribeTopics([]string{"my-topic"}, nil)
for {
msg, err := consumer.ReadMessage(-1)
if err != nil { break }
// process msg.Value
}