Wie wird eine Verbrauchergruppe in Apache Kafka implementiert?
sobes.tech KI
Antwort von AI
In Apache Kafka wird eine Konsumentengruppe als eine Gruppe von Konsumenten implementiert, die gemeinsam Daten aus Topics lesen und die Partitionen unter sich aufteilen. Jeder Konsument in der Gruppe erhält einen eindeutigen Satz von Partitionen, was eine parallele Verarbeitung der Nachrichten ohne Duplizierung gewährleistet.
Bei Verwendung von Go (Golang) mit der Bibliothek sarama oder confluent-kafka-go kann eine Konsumentengruppe erstellt werden, indem die gleiche group.id angegeben wird. Kafka verteilt automatisch die Partitionen unter den Gruppenmitgliedern und verfolgt die Offsets.
Beispiel mit 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"}
// Implementierung des ConsumerGroupHandler-Interfaces
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
Auf diese Weise ermöglicht die Konsumentengruppe die Skalierung der Nachrichtenverarbeitung und sorgt für eine Lastenverteilung zwischen den Instanzen.