Junior — Middle
Hoe kiest de Kafka-producent de partition voor het verzenden van een bericht?
sobes.tech AI
Antwoord van AI
De Kafka-producent kiest een partitie om een bericht te verzenden op basis van de berichtsleutel en de partitioneringsinstellingen. Als het bericht een sleutel heeft, gebruikt Kafka een hashfunctie van die sleutel om de specifieke partitie te bepalen, waardoor wordt gegarandeerd dat alle berichten met dezelfde sleutel naar dezelfde partitie gaan. Als er geen sleutel is, verdeelt de producent meestal de berichten cyclisch (round-robin) om de belasting te balanceren.
Voorbeeld in Go met de sarama-bibliotheek:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // sleutel voor partitionering
Value: sarama.StringEncoder("bericht payload"),
}
partition, offset, err := producer.SendMessage(msg)
Hier wordt de sleutel "userID123" gebruikt om de partitie te selecteren, zodat alle berichten met deze sleutel in dezelfde partitie terechtkomen.