Junior — Middle
Cum alege producătorul Kafka partiția pentru trimiterea unui mesaj?
sobes.tech AI
Răspuns de la AI
Producătorul Kafka alege o partiție pentru a trimite un mesaj pe baza cheii mesajului și a setărilor de partiționare. Dacă mesajul are o cheie, Kafka folosește o funcție hash a acestei chei pentru a determina o partiție specifică, asigurând că toate mesajele cu aceeași cheie vor ajunge în aceeași partiție. Dacă nu există cheie, producătorul distribuie de obicei mesajele ciclic (round-robin) pentru a echilibra sarcina.
Exemplu în Go folosind biblioteca sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // cheie pentru partiționare
Value: sarama.StringEncoder("payload-ul mesajului"),
}
partition, offset, err := producer.SendMessage(msg)
Aici, cheia "userID123" va fi folosită pentru a selecta partiția, astfel încât toate mesajele cu această cheie vor ajunge în aceeași partiție.