Junior — Middle
Ako si vyberá producent Kafka oddiel (partition) na odoslanie správy?
sobes.tech AI
Odpoveď od AI
Producent Kafka vyberá oddiel (partition) na odoslanie správy na základe kľúča správy a nastavení rozdeľovania. Ak má správa kľúč, Kafka používa hashovaciu funkciu tohto kľúča na určenie konkrétneho oddielu, čím zabezpečuje, že všetky správy s rovnakým kľúčom pôjdu do toho istého oddielu. Ak kľúč chýba, producent zvyčajne rozdeľuje správy cyklicky (round-robin) na vyváženie záťaže.
Príklad v Go s knižnicou sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // kľúč pre rozdeľovanie
Value: sarama.StringEncoder("payload správy"),
}
partition, offset, err := producer.SendMessage(msg)
Tu bude kľúč "userID123" použitý na výber oddielu, aby všetky správy s týmto kľúčom išli do toho istého oddielu.