Junior — Middle
Kuidas teha sundkorras andmete saatmine kindlasse partitsiooni andmesalvestussüsteemis?
sobes.tech AI
Vastus AI-lt
Süsteemides, mis kasutavad jaotamist (näiteks Kafka, Cassandra), andmete sunniviisiline saatmine konkreetsele jaotisele nõuab jaotise võtme või jaotise numbri selget määramist kirjutamise ajal.
Go keeles tehakse seda tavaliselt kliendi API kaudu, kus sõnumi avaldamisel või andmete kirjutamisel saab määrata võtme või jaotise:
// Näide Kafka jaoks sarama kasutades
producer.Input() <- &sarama.ProducerMessage{
Topic: "minu_teema",
Partition: 2, // määrame selgelt jaotise
Key: sarama.StringEncoder("jaotise_võti"),
Value: sarama.StringEncoder("andmed"),
}
Kui API ei võimalda otse jaotise numbri määramist, saab määrata jaotise võtme, mis hash-itatakse ja määrab jaotise.
Seega, andmete sunniviisiline saatmine soovitud jaotisse nõuab kliendi võimaluste kasutamist, määrates kirjutamise ajal võtme või jaotise numbri.