Apache Kafka

Apache Kafka, naudodamas raktus skaidymui

Apache Kafka, naudodamas raktus skaidymui
„Apache Kafka“ yra duomenų perdavimo platforma, atsakinga už duomenų srautą iš daugelio šaltiniai į daugelį taikiniai. Šaltiniai taip pat vadinami gamintojai. Pateikti duomenys reikalingi visai kitai grupei, vadinamai vartotojai įvairiems tikslams. „Kafka“ yra sluoksnis, kuris yra tarp gamintojų ir vartotojų ir sujungia duomenis į tinkamą naudoti vamzdyną. Taip pat pati „Kafka“ yra paskirstyta platforma, todėl „Kafka“ sluoksnis susideda iš įvairių serverių, kuriuose veikia „kafka“ Brokeriai.

Ši apžvalga yra šiek tiek abstrakti, todėl pagrįskime ją realaus pasaulio scenarijumi, įsivaizduokite, kad turite stebėti kelis žiniatinklio serverius. Kiekvienas naudojasi savo svetaine ir kiekvieną dieną kiekvieną sekundę kiekviename iš jų nuolat generuojami nauji žurnalai. Be to, yra keletas el. Pašto serverių, kuriuos taip pat turite stebėti.

Jums gali tekti saugoti tuos duomenis apskaitos ir atsiskaitymo tikslais, o tai yra paketinis darbas, kuriam nereikia nedelsiant skirti dėmesio. Galite priimti duomenų analizę, kad galėtumėte priimti sprendimus realiuoju laiku, o tam reikia tiksliai ir nedelsiant įvesti duomenis.  Staiga jums reikia protingai supaprastinti duomenis, atsižvelgiant į įvairius poreikius. Kafka veikia kaip tas abstrakcijos sluoksnis, kuriam keli šaltiniai gali paskelbti skirtingus duomenų srautus ir duotą vartotojas gali užsiprenumeruoti srautus, kurie jam atrodo aktualūs. „Kafka“ pasirūpins, kad duomenys būtų tvarkingi. Būtent „Kafka“ vidus, kurį turime suprasti, prieš pereidami į skirstymo ir raktų temą.

„Kafka“ temos, brokeris ir pertvaros

Kafka Temos yra tarsi duomenų bazės lentelės. Kiekvieną temą sudaro duomenys iš tam tikro tipo konkretaus šaltinio. Pavyzdžiui, jūsų klasterio sveikata gali būti tema, kurią sudaro informacija apie procesorių ir atminties panaudojimą. Lygiai taip pat kita tema gali būti įeinantis srautas į grupę.

„Kafka“ sukurta taip, kad ją būtų galima keisti horizontaliai. Tai reiškia, kad vieną „Kafka“ egzempliorių sudaro daugybė „Kafka“ brokeriai eidami per kelis mazgus, kiekvienas gali tvarkyti duomenų srautus lygiagrečiai vienas kitam. Net jei keliems mazgams nepavyksta, jūsų duomenų perdavimo linija gali veikti toliau. Tuomet tam tikrą temą galima suskirstyti į kelias temas pertvaros. Šis skaidymas yra vienas iš svarbiausių veiksnių, lemiančių horizontalų „Kafka“ mastelį.

Daugkartinis gamintojai, tam tikros temos duomenų šaltiniai gali rašyti į tą temą vienu metu, nes kiekvienas rašo į skirtingą skaidinį, bet kuriuo momentu. Dabar duomenys paprastai skiriami skaidiniui atsitiktinai, nebent mes suteikiame jam raktą.

Skirstymas ir užsakymas

Norint pakartoti, gamintojai rašo duomenis pagal tam tikrą temą. Ta tema iš tikrųjų yra padalinta į keletą skaidinių. Kiekvienas skaidinys gyvena nepriklausomai nuo kitų, net tam tikrai temai. Tai gali sukelti daug painiavos, kai svarbu užsakyti duomenis. Galbūt jums reikia duomenų chronologine tvarka, tačiau turėdami kelis duomenų srauto skaidinius dar negarantuojate tobulo užsakymo.

Kiekvienoje temoje galite naudoti tik vieną skaidinį, tačiau tai sugadina visą „Kafka“ paskirstytos architektūros tikslą. Taigi mums reikia kito sprendimo.

Pertvarų raktai

Gamintojo duomenys į pertvaras siunčiami atsitiktinai, kaip minėjome anksčiau. Pranešimai yra tikri duomenų gabalai. Gamintojai gali ne tik siųsti žinutes, bet ir pridėti raktą.

Visi pranešimai, pateikiami su konkrečiu raktu, bus nukreipti į tą patį skaidinį. Pavyzdžiui, vartotojo veikla gali būti stebima chronologiškai, jei to vartotojo duomenys pažymimi raktu, todėl jie visada patenka į vieną skaidinį. Pavadinkime šį skaidinį p0, o vartotoją - u0.

P0 skaidinys visada pasiims su u0 susijusius pranešimus, nes tas raktas susieja juos. Bet tai nereiškia, kad p0 yra susijęs tik su tuo. Jis taip pat gali priimti pranešimus iš u1 ir u2, jei turi galimybių tai padaryti. Panašiai ir kiti skaidiniai gali naudoti duomenis iš kitų vartotojų.

Taškas, kad konkretaus vartotojo duomenys nėra paskirstyti skirtinguose skaidiniuose, užtikrinant chronologinį to vartotojo išdėstymą. Tačiau bendra tema vartotojo duomenys, vis dar gali panaudoti paskirstytą „Apache Kafka“ architektūrą.

Išvada

Nors paskirstytos sistemos, tokios kaip „Kafka“, išsprendžia kai kurias senesnes problemas, tokias kaip mastelio trūkumas ar vienas gedimo taškas. Jie ateina su problemomis, būdingomis tik jų pačių dizainui. Šių problemų numatymas yra būtinas bet kurio sistemos architekto darbas. Maža to, kartais jūs tikrai turite atlikti sąnaudų ir naudos analizę, kad nustatytumėte, ar naujos problemos yra vertas kompromisas norint atsikratyti senesnių. Užsakymas ir sinchronizavimas yra tik ledkalnio viršūnė.

Tikimės, kad tokie straipsniai ir oficiali dokumentacija gali jums padėti.

Kaip padidinti FPS sistemoje „Linux“?
FPS reiškia Kadrai per sekundę. FPS užduotis yra išmatuoti kadrų greitį atkuriant vaizdo įrašus ar žaidimus. Paprastais žodžiais, nepertraukiamų viso ...
Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...