Sobes.tech
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.