Apache Kafka

Apache Kafka skaidymas

Apache Kafka skaidymas
Šioje pamokoje pamatysime, ką turime omenyje turėdami skaidymą „Apache Kafka“ ir kaip tai veikia „Kafka“ klasterio našumą. Skirstymo koncepcija yra pagrindinė „Kafka“ klasterio dalis, nes skaidymas naudojamas kaip pagrindinis mastelio keitimo ir našumo didinimo būdas.

Atkreipkite dėmesį, kad tai nėra įvadinė pamoka. Prašome perskaityti „Kas yra„ Apache Kafka “ir kaip tai veikia, prieš tęsdami šią pamoką, kad gautumėte gilesnę įžvalgą.

Temos Kafkoje

„Kafka“ tema yra kažkas, kur siunčiama žinutė. Vartotojų programos, kurios domisi ta tema, įtraukia pranešimą į temą ir su tais duomenimis gali padaryti bet ką. Iki konkretaus laiko bet kuris vartotojų programų skaičius gali parengti šį pranešimą bet kokį skaičių kartų.

Apsvarstykite tokią temą kaip „LinuxHint“ „Ubuntu Blog“ puslapis. Pamokos atidedamos iki amžinybės ir bet koks skaičius entuziastų gali ateiti ir skaityti šias pamokas bet kiek kartų arba pereiti prie kitos pamokos, kaip nori. Šie skaitytojai gali domėtis ir kitomis „LinuxHint“ temomis.

Temos skaidymas

„Kafka“ sukurtas valdyti sunkias programas ir įtraukti į eilę daugybę pranešimų, kurie laikomi temoje. Kad būtų užtikrintas didelis gedimų toleravimas, kiekviena tema yra padalinta į keletą temų skaidinių ir kiekviena temos skaidinys valdomas atskirame mazge. Jei vienas iš mazgų žengia žemyn, kitas mazgas gali veikti kaip temų lyderis ir gali aptarnauti temas susidomėjusiems vartotojams. Štai kaip tie patys duomenys rašomi į kelias temų skaidinius:

Temos pertvaros


Dabar aukščiau pateiktame paveikslėlyje parodyta, kaip tie patys duomenys yra atkartojami keliuose skaidiniuose. Įsivaizduokime, kaip skirtingi skaidiniai gali veikti kaip lyderis skirtinguose mazguose / skaidiniuose:

„Kafka“ brokerio skaidymas

Kai klientas ką nors parašo temoje pozicijoje, kuriai vadovauja „Broker 0“ skaidinys, šie duomenys yra pakartojami tarpininkams / mazgams, kad pranešimas išliktų saugus:

Replikacija tarpininkavimo skyriuose

Daugiau pertvarų, didesnis pralaidumas

Kafka naudojasi Lygiagretumas užtikrinti labai didelę apyvartą gamintojų ir vartotojų programoms. Tiesą sakant, tuo pačiu būdu ji taip pat išlaiko savo atsparumą gedimams sistemą. Supraskime, koks didelis pralaidumas pasiekiamas lygiagretumu.

Kai „Producer“ programa parašo pranešimą į „Broker 0“ skaidinį, „Kafka“ lygiagrečiai atidaro kelias gijas, kad pranešimą būtų galima pakartoti visuose pasirinktuose tarpininkams vienu metu. Vartotojo pusėje vartotojo programa vartoja pranešimus iš vieno skaidinio per giją. Kuo daugiau skaidinių, tuo daugiau vartotojų siūlų gali būti atidaryta, kad visos jos galėtų veikti ir lygiagrečiai. Tai reiškia, kad kuo daugiau skaidinių grupėje, tuo daugiau galima išnaudoti lygiagretumą, sukuriant labai didelę pralaidumo sistemą.

Daugiau skaidinių reikia daugiau failų tvarkytuvų

Taigi aukščiau jūs ištyrėte, kaip mes galime padidinti „Kafka“ sistemos našumą, tik padidinę skaidinių skaičių. Bet mes turime būti atsargūs su kuria riba einame.

Kiekvienas „Kafka“ temos skaidinys priskiriamas katalogui serverio tarpininko, kuriame jis veikia, failų sistemoje. Šiame žurnalo kataloge bus du failai: vienas skirtas indeksui, kitas - faktiniams duomenims vienam rąsto segmentui. Šiuo metu „Kafkoje“ kiekvienas brokeris atidaro kiekvieno žurnalo segmento indekso ir duomenų bylos failų tvarkyklę. Tai reiškia, kad jei jūs turite 10 000 skaidinių viename brokeryje, tai lems 20 000 failų tvarkytuvų lygiagrečiai. Nors tai tik apie brokerio konfigūraciją. Jei sistema, kurioje veikia brokeris, turi aukštą konfigūraciją, tai vargu ar bus problema.

Rizika dėl didelio pertvarų skaičiaus

Kaip matėme aukščiau esančiuose paveikslėliuose, „Kafka“ naudoja klasterio vidaus replikavimo techniką, kad atkartotų lyderio pranešimą į „Replica“ skaidinius, esančius kituose brokeriuose. Tiek gamintojo, tiek vartotojo programos skaito ir rašo į skaidinį, kuris šiuo metu yra to skaidinio vadovas. Kai brokeris žlunga, to brokerio vadovas tampa nebepasiekiamas. Metaduomenys apie tai, kas yra lyderis, saugomi „Zookeeper“. Remdamasis šiais metaduomenimis, Kafka automatiškai priskirs skaidinio vadovavimą kitam.

Kai brokeris bus uždarytas naudojant švarią komandą, „Kafka“ klasterio valdiklio mazgas iš eilės perkels sustabdyto brokerio lyderius i.e. po viena. jei manome, kad vieno vadovo perkėlimas trunka 5 milisekundes, tai lyderių nepasiekimas netrukdys vartotojams, nes jų negalima pasiekti labai trumpą laiką. Bet jei atsižvelgsime į tai, kada brokeris nužudomas nešvariu būdu, o šiame brokeryje yra 5000 skaidinių, iš jų 2000 buvo partijų lyderiai, naujų lyderių paskyrimas visoms šioms pertvaroms užtruks 10 sekundžių, o tai yra labai daug, kai reikia labai paklausos programos.

Išvada

Jei laikysime aukšto lygio mąstytoju, daugiau „Kafka“ grupės skaidinių lemia didesnį sistemos pralaidumą. Turint omenyje šį efektyvumą, taip pat reikia atsižvelgti į „Kafka“ klasterio, kurį turime prižiūrėti, konfigūraciją, atmintį, kurią turime priskirti šiam klasteriui, ir kaip valdyti prieinamumą ir vėlavimą, jei kažkas negerai.

Skaitykite daugiau „Ubuntu“ pagrįstų įrašų čia ir daug daugiau apie „Apache kafka“.

Kaip užfiksuoti ir perduoti savo žaidimų sesiją sistemoje „Linux“
Anksčiau žaidimai buvo laikomi tik pomėgiu, tačiau laikui bėgant lošimų pramonė labai augo technologijų ir žaidėjų skaičiaus atžvilgiu. Žaidimų audito...
Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...
Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...