Apache Kafka

Apache Kafka kasutab partitsiooni võtmeid

Apache Kafka kasutab partitsiooni võtmeid
Apache Kafka on andmete voogesituse platvorm, mis vastutab paljude andmete voogesituse eest allikatest paljudele sihtmärgid. Allikaid nimetatakse ka tootjad. Toodetud andmeid on vaja täiesti erinevale grupile nimega tarbijatele erinevatel eesmärkidel. Kafka on kiht, mis asub tootjate ja tarbijate vahel ning koondab andmed kasutatavaks torujuhtmeks. Kafka ise on hajutatud platvorm, nii et Kafka kiht koosneb erinevatest serveritest, kus töötab kafka, neid servereid või sõlme nimetatakse seega Kafkaks Maaklerid.

See ülevaade on veidi abstraktne, nii et läheme sellele reaalses stsenaariumis, kujutage ette, et peate jälgima mitut veebiserverit. Igaüks töötab oma veebisaidil ja iga päev sekundi jooksul luuakse neist pidevalt uusi logisid. Peale selle on mitmeid e-posti servereid, mida peate samuti jälgima.

Teil võib tekkida vajadus salvestada need andmed arvestuse pidamise ja arveldamise eesmärgil, mis on pakett, mis ei vaja kohe tähelepanu. Võiksite käivitada andmete analüüsi, et teha otsuseid reaalajas, mis nõuab andmete täpset ja viivitamatut sisestamist.  Järsku leiad, et on vaja andmeid mõistlikult kõigi erinevate vajaduste jaoks sujuvamaks muuta. Kafka toimib selle abstraktsioonikihina, millele mitu allikat saavad avaldada erinevaid andmevooge ja antud tarbija saab tellida vooge, mida ta peab asjakohaseks. Kafka hoolitseb selle eest, et andmed oleksid korras. Just Kafka sisemusest peame aru saama, enne kui jõuame jaotuse ja võtmete teemani.

Kafka teemad, maakler ja vaheseinad

Kafka Teemad on nagu andmebaasi tabelid. Iga teema koosneb andmetest, mis pärinevad teatud tüüpi kindlast allikast. Näiteks võib teie klastri tervis olla teema, mis koosneb protsessori ja mälukasutuse teabest. Samamoodi võib teine ​​teema olla sissetulev liiklus üle klastri.

Kafka on kavandatud horisontaalselt mastaapseks. See tähendab, et üks Kafka eksemplar koosneb mitmest Kafkast maaklerid töötab üle mitme sõlme, saab igaüks teisega paralleelselt käsitseda. Isegi kui mõned sõlmed ebaõnnestuvad, võivad teie andmesidetorud edasi töötada. Konkreetse teema saab seejärel jagada mitmeks vaheseinad. See jaotamine on üks Kafka horisontaalse skaleeritavuse tagamaid.

Mitmekordne tootjad, antud teema andmeallikad saavad sellele teemale üheaegselt kirjutada, sest kumbki kirjutab igal ajahetkel erinevasse partitsiooni. Nüüd määratakse andmed partitsioonile tavaliselt juhuslikult, kui me ei paku sellele võtit.

Jaotus ja tellimine

Lihtsalt kokkuvõtteks kirjutavad tootjad andmeid antud teema kohta. See teema on tegelikult jagatud mitmeks sektsiooniks. Ja iga partitsioon elab teistest sõltumatult, isegi antud teema jaoks. See võib põhjustada palju segadust, kui andmete tellimine on oluline. Võib-olla vajate oma andmeid kronoloogilises järjekorras, kuid andmevoo jaoks mitme partitsiooni olemasolu ei taga täiuslikku tellimist.

Teema kohta saate kasutada ainult ühte sektsiooni, kuid see rikub Kafka hajutatud arhitektuuri kogu eesmärgi. Seega vajame mõnda muud lahendust.

Vaheseinte võtmed

Tootja andmed saadetakse partitsioonidele juhuslikult, nagu me varem mainisime. Sõnumid on tegelikud andmepalad. Mida tootjad saavad peale sõnumite saatmise teha, on lisada sellega koos võti.

Kõik konkreetse võtmega kaasas olevad sõnumid lähevad samasse sektsiooni. Nii saab näiteks kasutaja tegevust kronoloogiliselt jälgida, kui selle kasutaja andmed on märgistatud võtmega ja nii jõuavad need alati ühte sektsiooni. Nimetagem seda sektsiooni p0 ja kasutajat u0.

Partitsioon p0 võtab u0-ga seotud sõnumid alati üles, kuna see võti seob need omavahel. Kuid see ei tähenda, et p0 oleks ainult sellega seotud. See võib ka u1 ja u2 sõnumeid vastu võtta, kui tal on selleks võimalusi. Samamoodi võivad teised sektsioonid tarbida andmeid teistelt kasutajatelt.

Punkt, et antud kasutaja andmed pole hajutatud eri sektsioonidesse, tagades selle kasutaja kronoloogilise järjestuse. Kuid üldine teema kasutaja andmed, saab endiselt kasutada Apache Kafka hajutatud arhitektuuri.

Järeldus

Kui hajusüsteemid, nagu Kafka, lahendavad mõned vanemad probleemid, nagu mastaapsuse puudumine või ühe ebaõnnestumispunkti olemasolu. Neil on probleemide kogum, mis on ainulaadne nende enda kujunduse jaoks. Nende probleemide ennetamine on iga süsteemiarhitekti oluline töö. Vähe sellest, mõnikord peate tõesti tegema tasuvusanalüüsi, et teha kindlaks, kas uued probleemid on väärt kompromiss vanematest vabanemiseks. Tellimine ja sünkroniseerimine on vaid jäämäe tipp.

Loodetavasti võivad sellised artiklid ja ametlik dokumentatsioon teid aidata.

League of Legendsi installimine Ubuntu 14-le.04
Kui olete League of Legends fänn, siis on see teile võimalus proovida League of Legendsit. Pange tähele, et LOL-i toetab PlayOnLinux, kui olete Linuxi...
Installige uusim OpenRA strateegiamäng Ubuntu Linuxi
OpenRA on tasuta / tasuta reaalajas strateegiamängumootor, mis loob uuesti Westwoodi varased mängud nagu klassikaline Command & Conquer: Red Alert. Ja...
Installige Linuxile uusim Dolphin Emulator for Gamecube & Wii
Dolphini emulaator võimaldab teil mängida valitud Gamecube & Wii mänge Linuxi personaalarvutites (PC). Vabalt saadaval oleva ja avatud lähtekoodiga m...