Junior — Middle
Jak vybírá producent Kafka oddíl (partition) pro odeslání zprávy?
sobes.tech AI
Odpověď od AI
Producent Kafka vybírá oddíl (partition) pro odeslání zprávy na základě klíče zprávy a nastavení rozdělení. Pokud má zpráva klíč, Kafka používá hashovací funkci tohoto klíče k určení konkrétního oddílu, čímž zajišťuje, že všechny zprávy se stejným klíčem půjdou do stejného oddílu. Pokud klíč chybí, producent obvykle rozděluje zprávy cyklicky (round-robin) pro vyvážení zátěže.
Příklad v Go s knihovnou sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // klíč pro rozdělení
Value: sarama.StringEncoder("payload zprávy"),
}
partition, offset, err := producer.SendMessage(msg)
Zde bude klíč "userID123" použit pro výběr oddílu, aby všechny zprávy s tímto klíčem šly do stejného oddílu.