Junior — Middle
Come viene implementato un gruppo di consumatori in Apache Kafka?
sobes.tech AI
Risposta dell'AI
In Apache Kafka, un gruppo di consumatori viene implementato come un insieme di consumatori che leggono i dati dai topic condividendo le partizioni tra loro. Ogni consumatore del gruppo riceve un insieme unico di partizioni, garantendo l'elaborazione parallela dei messaggi senza duplicazioni.
Utilizzando Go (Golang) con la libreria sarama o confluent-kafka-go, è possibile creare un gruppo di consumatori specificando lo stesso group.id. Kafka distribuirà automaticamente le partizioni tra i membri del gruppo e terrà traccia degli offset.
Esempio con sarama:
config := sarama.NewConfig()
config.Version = sarama.V2_1_0_0
consumerGroup, err := sarama.NewConsumerGroup([]string{"localhost:9092"}, "my-group", config)
if err != nil {
panic(err)
}
topics := []string{"my-topic"}
// Implementazione dell'interfaccia ConsumerGroupHandler
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
In questo modo, il gruppo di consumatori permette di scalare l'elaborazione dei messaggi e garantisce il bilanciamento del carico tra le istanze.