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.