Junior — Middle
Hogyan választja ki a Kafka producer a partíciót az üzenet küldéséhez?
sobes.tech MI
Válasz az MI-től
A Kafka producere kiválaszt egy partíciót az üzenet küldéséhez az üzenet kulcsa és a partíciózási beállítások alapján. Ha az üzenetnek van kulcsa, a Kafka egy hash-függvényt használ erre a kulcsra, hogy meghatározza a konkrét partíciót, biztosítva, hogy minden ugyanazzal a kulccsal rendelkező üzenet ugyanabba a partícióba kerüljön. Ha nincs kulcs, a producer általában körforgásos (round-robin) módon osztja el az üzeneteket a terhelés kiegyensúlyozása érdekében.
Példa Go nyelven a sarama könyvtár használatával:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // kulcs a partícióhoz
Value: sarama.StringEncoder("üzenet payload"),
}
partition, offset, err := producer.SendMessage(msg)
Itt a "userID123" kulcsot fogják használni a partíció kiválasztásához, hogy minden ugyanazzal a kulccsal rendelkező üzenet ugyanabba a partícióba kerüljön.