Sobes.tech
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.