Sobes.tech
Junior — Middle

Kako Kafka producent bira particiju za slanje poruke?

sobes.tech АИ

Одговор од АИ

Proizvođač Kafka bira particiju za slanje poruke na osnovu ključa poruke i podešavanja za particionisanje. Ako poruka ima ključ, Kafka koristi funkciju heširanja tog ključa da odredi specifičnu particiju, osiguravajući da sve poruke sa istim ključem idu u istu particiju. Ako nema ključa, proizvođač obično ravnomerno raspoređuje poruke (round-robin) radi balansiranja opterećenja.

Primer u Go koristeći biblioteku sarama:

producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
    Topic: "my_topic",
    Key:   sarama.StringEncoder("userID123"), // ključ za particionisanje
    Value: sarama.StringEncoder("podatak poruke"),
}
partition, offset, err := producer.SendMessage(msg)

Ovde će ključ "userID123" biti korišćen za izbor particije, tako da sve poruke sa tim ključem idu u istu particiju.