Comment un groupe de consommateurs est-il implémenté dans Apache Kafka?
sobes.tech IA
Réponse de l'IA
Dans Apache Kafka, un groupe de consommateurs est implémenté comme un ensemble de consommateurs qui lisent conjointement les données des topics, en répartissant les partitions entre eux. Chaque consommateur du groupe reçoit un ensemble unique de partitions, ce qui assure un traitement parallèle des messages sans duplication.
En utilisant Go (Golang) avec la bibliothèque sarama ou confluent-kafka-go, vous pouvez créer un groupe de consommateurs en spécifiant le même group.id. Kafka répartira automatiquement les partitions entre les membres du groupe et suivra les décalages (offsets).
Exemple avec 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"}
// Implémentation de l'interface ConsumerGroupHandler
handler := &MyConsumerGroupHandler{}
for {
err := consumerGroup.Consume(ctx, topics, handler)
if err != nil {
log.Fatal(err)
}
}
Ainsi, le groupe de consommateurs permet de faire évoluer le traitement des messages et assure la répartition de la charge entre les instances.