Junior — Middle
Comment le producteur Kafka choisit-il la partition pour envoyer un message?
sobes.tech IA
Réponse de l'IA
Le producteur Kafka choisit une partition pour envoyer un message en fonction de la clé du message et des paramètres de partitionnement. Si le message a une clé, Kafka utilise une fonction de hachage de cette clé pour déterminer la partition spécifique, garantissant que tous les messages avec une même clé iront dans la même partition. S'il n'y a pas de clé, le producteur répartit généralement les messages de manière cyclique (round-robin) pour équilibrer la charge.
Exemple en Go utilisant la bibliothèque sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // clé pour partitionnement
Value: sarama.StringEncoder("charge utile du message"),
}
partition, offset, err := producer.SendMessage(msg)
Ici, la clé "userID123" sera utilisée pour choisir la partition, afin que tous les messages avec cette clé aillent dans la même partition.