Apache Kafka

Výukový program Apache Kafka

Výukový program Apache Kafka
V tejto lekcii uvidíme, ako môžeme Apache Kafku používať a aké je jej použitie. Dôkladne sa pozrieme na rôzne terminológie, ktoré sú s tým spojené, a začneme s nimi tiež pracovať.

Apache Kafka

Pre definíciu na vysokej úrovni si predstavíme krátku definíciu pre Apache Kafka:

Apache Kafka je distribuovaný, odolný voči chybám, horizontálne škálovateľný protokol potvrdenia.

To bolo niekoľko slov na vysokej úrovni o Apache Kafkovi. Poďme tu podrobne pochopiť pojmy.

Téma v aplikácii Apache Kafka je ako front, v ktorom sú uložené správy. Tieto správy sa ukladajú na nastaviteľné množstvo času a správa sa vymaže až po uplynutí tejto doby, aj keď ich spotrebovali všetci známi spotrebitelia.

Kafka je škálovateľná, pretože sú to práve spotrebitelia, ktorí skutočne ukladajú to, čo správa, ktorú priniesli, trvá ako „offsetová“ hodnota. Pozrime sa na číslo, ktoré tomu lepšie porozumie:

Témová časť a ofset spotrebiteľa v Apache Kafka

Začíname s Apache Kafkou

Ak chcete začať používať Apache Kafka, musí byť na počítači nainštalovaný. Ak to chcete urobiť, prečítajte si článok Inštalácia Apache Kafka na Ubuntu.

Ak chcete vyskúšať príklady, ktoré uvedieme neskôr v lekcii, uistite sa, že máte aktívnu inštaláciu Kafka.

Ako to funguje?

So spoločnosťou Kafka Výrobca aplikácie zverejňujú správ ktorý dorazí na Kafku Uzol a nie priamo spotrebiteľovi. Z tohto uzla Kafka správy spotrebúva Spotrebiteľ aplikácie.

Výrobca a spotrebiteľ spoločnosti Kafka


Pretože jedna téma môže získať veľa údajov naraz, je každá téma rozdelená na, aby bola Kafka horizontálne škálovateľná priečky a každý oddiel môže žiť na ľubovoľnom uzlovom stroji klastra. Pokúsme sa to predstaviť:

Témové oddiely


Spoločnosť Kafka Broker opäť nevedie záznamy o tom, ktorý spotrebiteľ spotreboval koľko paketov údajov. Je to zodpovednosť spotrebiteľov za sledovanie údajov, ktoré spotrebovala.

Perzistencia na disku

Kafka pretrváva záznamy správ, ktoré dostane od producentov na disku, a neuchováva ich v pamäti. Môže vzniknúť otázka, ako to robí veci uskutočniteľnými a rýchlymi? Bolo za tým niekoľko dôvodov, čo z neho robí optimálny spôsob správy záznamov správ:

Distribúcia a replikácia údajov

Ako sme študovali vyššie, že téma je rozdelená na oddiely, každý záznam správy sa replikuje na viacerých uzloch klastra, aby sa zachovalo poradie a údaje každého záznamu v prípade, že jeden z uzlov zomrie.

Aj keď je oddiel replikovaný na viacerých uzloch, stále existuje vedúci oddielu uzol, cez ktorý aplikácie čítajú a zapisujú údaje o téme, a vedúci replikuje údaje na ďalších uzloch, ktoré sa označujú ako nasledovníkov tej priečky.

Ak sú dáta záznamu správy pre aplikáciu veľmi dôležité, dá sa záruka bezpečnosti záznamu správy v jednom z uzlov zvýšiť zvýšením hodnoty replikačný faktor klastra.

Čo je Zookeeper?

Zookeeper je vysoko odolný voči chybám, distribuovaný obchod s kľúčmi a hodnotami. Apache Kafka vo veľkej miere závisí od Zookeeperu pri ukladaní mechaniky klastrov, ako je napríklad srdcový rytmus, distribúcia aktualizácií / konfigurácií atď.).

Umožňuje sprostredkovateľom Kafka prihlásiť sa na odber a vedieť, kedykoľvek došlo k akejkoľvek zmene týkajúcej sa vedúceho oddielu a distribúcie uzlov.

Aplikácie Producent a Spotrebitelia priamo komunikujú so Zookeeperom aplikácia vedieť, ktorý uzol je vedúci oddielu pre tému, aby mohli vykonávať čítanie a zápis z vedúceho oddielu.

Streaming

Streamový procesor je hlavnou súčasťou klastra Kafka, ktorý berie nepretržitý prúd údajov záznamu správ zo vstupných tém, spracováva ich a vytvára prúd údajov na výstupné témy, ktoré môžu byť čokoľvek, od koša po databázu.

Je úplne možné vykonať jednoduché spracovanie priamo pomocou API výrobcu / spotrebiteľa, aj keď pre komplexné spracovanie, ako je kombinovanie streamov, poskytuje Kafka integrovanú knižnicu Streams API, ale upozorňujeme, že toto API je určené na použitie v rámci našej vlastnej kódovej základne a nerobí to. t na makléra. Funguje to podobne ako spotrebiteľské API a pomáha nám rozšíriť prácu so spracovaním toku na viac aplikácií.

Kedy použiť Apache Kafka?

Ako sme študovali v predchádzajúcich častiach, program Apache Kafka môže byť použitý na spracovanie veľkého množstva záznamov správ, ktoré môžu patriť k skutočne nekonečnému počtu tém v našich systémoch.

Apache Kafka je ideálnym kandidátom, pokiaľ ide o používanie služby, ktorá nám umožňuje sledovať v našich aplikáciách architektúru založenú na udalostiach. Je to vďaka jeho schopnostiam vytrvalosti údajov, odolnosti voči chybám a vysoko distribuovanej architektúry, kde sa kritické aplikácie môžu spoľahnúť na jeho výkon.

Škálovateľná a distribuovaná architektúra Kafky veľmi uľahčuje integráciu s mikroslužbami a umožňuje aplikácii oddeliť sa od mnohých obchodných logík.

Vytváranie novej témy

Môžeme vytvoriť testovaciu tému testovanie na serveri Apache Kafka pomocou nasledujúceho príkazu:

Vytvorenie témy

sudo kafka-topic.sh --create --zookeeper localhost: 2181 --replikačný faktor 1
--oddiely 1 --topické testovanie

S týmto príkazom sa dostaneme späť:

Vytvorte novú tému Kafka


Vytvorí sa testovacia téma, ktorú môžeme potvrdiť spomínaným príkazom:

Kafka Potvrdenie vytvorenia témy

Písanie správ na tému

Ako sme už študovali skôr, jedným z API prítomných v Apache Kafke je Producent API. Toto API použijeme na vytvorenie novej správy a zverejnenie k téme, ktorú sme práve vytvorili:

Písanie správy k téme

sudo kafka-console-producent.sh --broker-list localhost: 9092 --topické testovanie

Pozrime sa na výstup pre tento príkaz:

Zverejniť správu k téme Kafka


Po stlačení klávesu sa nám zobrazí nový znak šípky (>), čo znamená, že teraz môžeme údaje načítať:

Písanie správy


Stačí niečo napísať a stlačením spustiť nový riadok. Napísal som do 3 riadkov textov:

Čítanie správ z témy

Teraz, keď sme zverejnili správu o téme Kafka, ktorú sme vytvorili, táto správa tam bude nejaký konfigurovateľný čas. Teraz si ju môžeme prečítať pomocou Spotrebiteľské API:

Čítanie správ z témy

sudo kafka-console-consumer.sh --zookeeper localhost: 2181 --
testovanie tém - od začiatku

S týmto príkazom sa dostaneme späť:

Príkaz na prečítanie správy od témy Kafka


Správy alebo riadky, ktoré sme napísali, uvidíme pomocou rozhrania Producer API, ako je uvedené nižšie:

Ak napíšeme ďalšiu novú správu pomocou rozhrania Producer API, okamžite sa zobrazí aj na strane spotrebiteľa:

Zverejnite a spotrebujte súčasne

Záver

V tejto lekcii sme sa pozreli na to, ako začneme používať server Apache Kafka, ktorý je vynikajúcim sprostredkovateľom správ a môže fungovať aj ako špeciálna jednotka na pretrvávanie údajov.

Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z najpopulárnejších obchodných simulačných hier. V tejto hre musíte vytvoriť úžasné dopravné podnikanie. Začnete však na začiatku ok...
Hry SuperTuxKart pre Linux
SuperTuxKart pre Linux
SuperTuxKart je vynikajúci titul navrhnutý tak, aby vám priniesol zážitok z hry Mario Kart zadarmo na vašom systéme Linux. Je to dosť náročné a zábavn...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
Battle for Wesnoth je jednou z najpopulárnejších open source strategických hier, ktoré si v súčasnosti môžete zahrať. Táto hra bola nielen vyvinutá ve...