Sobes.tech
Junior — Middle

Kafka yapımcısı mesaj göndermek için bölümü nasıl seçer?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kafka üreticisi, mesajın anahtarına ve bölümlendirme ayarlarına göre mesaj göndermek için bir bölüm (partition) seçer. Eğer mesajın bir anahtarı varsa, Kafka bu anahtardan bir karma fonksiyonu kullanır ve belirli bir bölümü belirler, böylece aynı anahtara sahip tüm mesajlar aynı bölüme gider. Anahtar yoksa, üretici genellikle yük dengeleme için mesajları döngüsel (round-robin) olarak dağıtır.

Go dilinde sarama kütüphanesi kullanarak örnek:

producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
    Topic: "my_topic",
    Key:   sarama.StringEncoder("userID123"), // bölümlendirme anahtarı
    Value: sarama.StringEncoder("mesaj yükü"),
}
partition, offset, err := producer.SendMessage(msg)

Burada, "userID123" anahtarı, bu anahtara sahip tüm mesajların aynı bölüme gitmesini sağlamak için bölüm seçimi için kullanılacaktır.