Junior — Middle
Чӣ гуна истеҳсолкунандаи Kafka қисми (partition) барои фиристодани паёмро интихоб мекунад?
sobes.tech AI
Ҷавоб аз AI
ผู้ผลิต Kafka เลือกพาร์ติชัน (partition) สำหรับส่งข้อความโดยอิงจากคีย์ของข้อความและการตั้งค่าการแบ่งพาร์ติชัน หากข้อความมีคีย์ Kafka จะใช้ฟังก์ชันแฮชของคีย์นั้นเพื่อกำหนดพาร์ติชันเฉพาะ เพื่อให้แน่ใจว่าข้อความทั้งหมดที่มีคีย์เดียวกันจะไปยังพาร์ติชันเดียวกัน หากไม่มีคีย์ ผู้ผลิตมักจะแจกจ่ายข้อความแบบวนรอบ (round-robin) เพื่อความสมดุลของภาระ
ตัวอย่างใน Go โดยใช้ไลบรารี sarama:
producer, _ := sarama.NewSyncProducer(brokers, config)
msg := &sarama.ProducerMessage{
Topic: "my_topic",
Key: sarama.StringEncoder("userID123"), // คีย์สำหรับการแบ่งพาร์ติชัน
Value: sarama.StringEncoder("payload ของข้อความ"),
}
partition, offset, err := producer.SendMessage(msg)
ที่นี่ คีย์ "userID123" จะถูกใช้เพื่อเลือกพาร์ติชัน เพื่อให้ข้อความทั้งหมดที่มีคีย์นี้ไปยังพาร์ติชันเดียวกัน