Apache Kafka

Apache Kafka õpetus

Apache Kafka õpetus
Selles tunnis näeme, kuidas saame Apache Kafkat kasutada ja mis on selle kasutus. Vaatame põhjalikult erinevaid sellega seotud terminoloogiaid ja hakkame ka nendega töötama.

Apache Kafka

Kõrgetasemelise definitsiooni jaoks esitame Apache Kafka lühikese definitsiooni:

Apache Kafka on hajutatud, rikketaluv, horisontaalselt skaleeritav, pühendatud logi.

Need olid mõned kõrgetasemelised sõnad Apache Kafka kohta. Mõistkem siin mõistetest üksikasjalikult.

Apache Kafka teema on täpselt nagu järjekord, kuhu sõnumeid salvestatakse. Neid teateid salvestatakse konfigureeritava aja vältel ja sõnumeid ei kustutata enne selle aja saavutamist, isegi kui seda on tarbinud kõik teadaolevad tarbijad.

Kafka on skaleeritav, kuna just tarbijad salvestavad tegelikult selle, et mis sõnumi nad said, on see nihkeväärtusena. Vaatame joonist, et sellest paremini aru saada:

Teema partitsioon ja tarbija tasaarvestus Apache Kafkas

Apache Kafkaga alustamine

Apache Kafka kasutamise alustamiseks peab see olema arvutisse installitud. Selleks lugege artiklit Apache Kafka installimine Ubuntu.

Veenduge, et teil oleks aktiivne Kafka install, kui soovite proovida näiteid, mida me tunnis hiljem esitame.

Kuidas see töötab?

Kafkaga koos Produtsent rakendused avaldavad sõnumeid mis saabub Kafkasse Sõlm ja mitte otse Tarbijale. Selle Kafka sõlme kaudu tarbib sõnumeid Tarbija rakendused.

Kafka tootja ja tarbija


Kuna üks teema võib korraga saada palju andmeid, on Kafka horisontaalselt skaleeritavuse hoidmiseks jagatud vaheseinad ja iga sektsioon võib elada klastri mis tahes sõlmpunktis. Proovime seda esitada:

Teema vaheseinad


Kafka maakler jällegi ei pea arvestust selle üle, milline tarbija on tarbinud mitu andmepaketti. See on tarbijate kohustus jälgida tarbitud andmeid.

Püsivus kettale

Kafka säilitab Producersilt saadud kettadokumente ja ei hoia neid mälus. Võib tekkida küsimus, kuidas see muudab asja teostatavaks ja kiireks? Selle taga oli mitu põhjust, mis muudab selle sõnumikirjete haldamiseks optimaalseks viisiks:

Andmete levitamine ja replikatsioon

Nagu me eespool uurisime, et teema on jagatud partitsioonideks, kopeeritakse iga sõnumikirje klastri mitmesse sõlme, et säilitada iga kirje järjekord ja andmed juhul, kui üks sõlm sureb.

Kuigi sektsiooni paljundatakse mitmel sõlmel, on siiski olemas partitsioonijuht sõlm, mille kaudu rakendused loevad ja kirjutavad andmeid selle teema kohta ning juht kordab teiste sõlmede andmeid, mida nimetatakse järgijad selle sektsiooni.

Kui sõnumikirje andmed on rakenduse jaoks väga olulised, saab sõnumikirje turvalisust ühes sõlmpunktis suurendada, suurendades replikatsioonitegur klastri.

Mis on Zookeeper?

Zookeeper on väga rikketaluv, hajutatud võtmeväärtusega kauplus. Apache Kafka sõltub suuresti Zookeeperist klastrite mehaanika salvestamiseks, nagu südamelöök, värskenduste / konfiguratsioonide levitamine jne).

See võimaldab Kafka maakleritel end tellida ja teada, kui partitsioonijuhi ja sõlmpunktide jaotuse osas on toimunud muudatusi.

Tootja- ja tarbijarakendused suhtlevad otse Zookeeperiga rakendus, et teada saada, milline sõlm on teema partitsioonijuht, et nad saaksid partitsioonijuhilt lugeda ja kirjutada.

Voogesitus

Voogprotsessor on Kafka klastri põhikomponent, mis võtab sisendteemadelt pideva sõnumikirjete andmete voo, töötleb neid andmeid ja loob andmevoo väljundteemadeks, mis võivad olla ükskõik millised, prügikastist andmebaasini.

Lihtsat töötlemist on täiesti võimalik teha otse tootja / tarbija API-de abil, kuigi keerukaks töötlemiseks, näiteks voogude ühendamiseks, pakub Kafka integreeritud voogude API teeki, kuid pange tähele, et see API on mõeldud kasutamiseks meie enda koodibaasis ja seda ei tehta " ei jookse maakleri peal. See töötab sarnaselt tarbija API-ga ja aitab meil voogude töötlemist mitme rakenduse jaoks laiendada.

Millal Apache Kafkat kasutada?

Nagu uurisime ülaltoodud jaotistes, saab Apache Kafkat kasutada suure hulga sõnumikirjete käsitlemiseks, mis võivad kuuluda meie süsteemide praktiliselt lõpmatule hulgale teemadele.

Apache Kafka on ideaalne kandidaat teenuse kasutamisel, mis võimaldab meil rakendustes sündmustepõhist arhitektuuri jälgida. Selle põhjuseks on andmete püsivuse, tõrketaluvuse ja väga hajutatud arhitektuuri võimalused, kus kriitilised rakendused saavad tugineda selle jõudlusele.

Kafka skaleeritav ja hajutatud arhitektuur muudab integreerimise mikroteenustega väga lihtsaks ning võimaldab rakendusel eraldada end suure äriloogikaga.

Uue teema loomine

Saame luua testteema testimine Apache Kafka serveris järgmise käsuga:

Teema loomine

sudo kafka-teemad.sh --create --zookeeper localhost: 2181 - replikatsioonitegur 1
--partitsioonid 1 - teema testimine

Selle käsuga saame tagasi:

Looge uus Kafka teema


Luuakse testimise teema, mida saame kinnitada mainitud käsuga:

Kafka teema loomise kinnitus

Sõnumite kirjutamine teemal

Nagu me varem uurisime, on üks Apache Kafkas esinevatest API-dest Tootja API. Kasutame seda API-d uue sõnumi loomiseks ja avaldamiseks just loodud teemal:

Sõnumi kirjutamine teemale

sudo kafka-konsooli tootja.sh - maaklerite nimekiri localhost: 9092 - teemaline testimine

Vaatame selle käsu väljundit:

Avaldage sõnum Kafka teemas


Kui vajutame klahvi, näeme uut noole (>) märki, mis tähendab, et võime nüüd andmeid sisestada:

Sõnumi sisestamine


Sisestage lihtsalt midagi ja vajutage uue rea alustamiseks. Sisestasin 3 rida tekste:

Sõnumite lugemine teemast

Nüüd, kui oleme oma loodud Kafka teemal avaldanud teate, on see sõnum veel mõnda aega seadistatav. Saame seda nüüd lugeda, kasutades Tarbija API:

Sõnumite lugemine teemast

sudo kafka-konsooli-tarbija.sh - zookeeper localhost: 2181 --
teema testimine - algusest peale

Selle käsuga saame tagasi:

Käsk lugeda sõnumit Kafka teemalt


Me näeme Produceri API abil kirjutatud sõnumeid või ridu, nagu allpool näidatud:

Kui kirjutame Produceri API abil veel ühe uue sõnumi, kuvatakse see kohe ka tarbija poolel:

Avaldamine ja tarbimine samaaegselt

Järeldus

Selles tunnis vaatasime, kuidas hakkame kasutama Apache Kafkat, mis on suurepärane sõnumimaakler ja võib toimida ka spetsiaalse andmete püsivuse üksusena.

Kuidas muuta hiirekursori ja kursori suurust, värvi ja skeemi Windows 10-s
Windows 10 hiirekursor ja kursor on operatsioonisüsteemi väga olulised aspektid. Seda võib öelda ka teiste opsüsteemide kohta, nii et tegelikult pole ...
Tasuta ja avatud lähtekoodiga mängumootorid Linuxi mängude arendamiseks
See artikkel hõlmab loetelu tasuta ja avatud lähtekoodiga mängumootoritest, mida saab kasutada 2D- ja 3D-mängude arendamiseks Linuxis. Selliseid mängu...
Tomb Raider for Linuxi õpetus
Shadow of the Tomb Raider on kaheteistkümnes täiendus seeria Tomb Raider - tegevus- ja seiklusmängude frantsiisile, mille on loonud Eidos Montreal. Ni...