Apache Kafka

Vodič za Apache Kafku

Vodič za Apache Kafku
U ovoj ćemo lekciji vidjeti kako možemo koristiti Apache Kafku i koja je njegova upotreba. Temeljito ćemo razmotriti razne terminologije povezane s tim i početi raditi s njima.

Apache Kafka

Za definiciju na visokoj razini, predstavimo kratku definiciju za Apache Kafka:

Apache Kafka je distribuirani dnevnik pogrešaka, tolerantan na pogreške, vodoravno skalirajući.

To su bile neke riječi na visokoj razini o Apacheu Kafki. Razumijemo pojmove ovdje detaljno.

Tema u Apache Kafki je poput redova u kojem se pohranjuju poruke. Te se poruke pohranjuju podesivo vrijeme i poruka se ne briše dok se to vrijeme ne postigne, čak iako su je potrošili svi poznati potrošači.

Kafka je skalabilan jer su potrošači ti koji zapravo pohranjuju ono što su oni zadnji puta dohvatili kao "offset" vrijednost. Pogledajmo sliku kako bismo ovo bolje razumjeli:

Dio teme i potrošački pomak u Apache Kafki

Početak rada s Apacheom Kafkom

Da biste počeli koristiti Apache Kafka, mora biti instaliran na stroju. Da biste to učinili, pročitajte Instalacija Apache Kafke na Ubuntuu.

Provjerite imate li aktivnu instalaciju Kafke ako želite isprobati primjere koje ćemo predstaviti kasnije u lekciji.

Kako radi?

S Kafkom, Proizvođač prijave objaviti poruke koja stiže do Kafke Čvor a ne izravno potrošaču. Iz ovog Kafka čvora poruke troši Potrošač aplikacije.

Kafka proizvođač i potrošač


Kako jedna tema može dobiti puno podataka odjednom, kako bi Kafka bila vodoravno skalabilna, svaka je tema podijeljena na pregrade i svaka particija može živjeti na bilo kojem čvornom stroju klastera. Pokušajmo to predstaviti:

Tematske particije


Opet, Kafka Broker ne vodi evidenciju o tome koji je potrošač potrošio koliko paketa podataka. To je ono odgovornost potrošača za praćenje podataka koje je potrošila.

Postojanost na disku

Kafka nastavlja zapise poruka koje dobiva od proizvođača na disku i ne čuva ih u memoriji. Pitanje koje bi se moglo postaviti jest kako to stvari čini izvedivima i brzima? Iza ovoga je bilo nekoliko razloga koji ga čine optimalnim načinom upravljanja zapisima poruka:

Distribucija i replikacija podataka

Kao što smo gore proučavali da je tema podijeljena na particije, svaki se zapis poruke replicira na više čvorova klastera kako bi se održao redoslijed i podaci svakog zapisa u slučaju da jedan od čvorova umre.

Iako se particija replicira na više čvorova, još uvijek postoji vođa podjele čvor preko kojeg aplikacije čitaju i zapisuju podatke o temi, a voditelj replicira podatke na drugim čvorovima, koji se nazivaju sljedbenici te pregrade.

Ako su podaci zapisa poruke izuzetno važni za aplikaciju, jamstvo da će zapis poruke biti siguran u jednom od čvorova može se povećati povećanjem faktor replikacije klastera.

Što je čuvar zoološkog vrta?

Zookeeper je distribuirana trgovina ključeva i vrijednosti vrlo otporna na kvarove. Apache Kafka u velikoj mjeri ovisi o čuvaru zooloških vrtova za pohranu mehanike klastera poput otkucaja srca, distribucije ažuriranja / konfiguracija itd.).

Omogućuje Kafkinim posrednicima da se pretplate i znaju kad god se dogodi bilo kakva promjena u vezi s vođom particije i distribucijom čvorova.

Aplikacije proizvođača i potrošača izravno komuniciraju sa Zookeeperom aplikacija da zna koji je čvor voditelj particije za temu kako bi mogli izvoditi čitanje i pisanje s voditelja particije.

Strujanje

Procesor strujanja glavna je komponenta u Kafka klasteru koja uzima kontinuirani tok podataka zapisa poruka od ulaznih tema, obrađuje te podatke i stvara tok podataka za izlaz teme koji mogu biti bilo što, od smeća do baze podataka.

Potpuno je moguće izvesti jednostavnu obradu izravno pomoću API-ja proizvođača / potrošača, iako za složenu obradu, poput kombiniranja streamova, Kafka nudi integriranu biblioteku Streams API, ali imajte na umu da je ovaj API namijenjen korištenju u našoj vlastitoj bazi koda i ne ' ne trči na brokeru. Djeluje slično potrošačkom API-ju i pomaže nam da proširimo rad obrade toka u više aplikacija.

Kada koristiti Apache Kafka?

Kao što smo proučavali u gornjim odjeljcima, Apache Kafka može se koristiti za rješavanje velikog broja zapisa poruka koji mogu pripadati gotovo beskonačnom broju tema u našim sustavima.

Apache Kafka idealan je kandidat za upotrebu usluge koja nam može omogućiti da u našim aplikacijama pratimo arhitekturu vođenu događajima. To je zbog njegovih mogućnosti postojanosti podataka, otporne na greške i visoko distribuirane arhitekture gdje se kritične aplikacije mogu pouzdati u njegove performanse.

Skalabilna i distribuirana arhitektura Kafke čini integraciju s mikrouslugama vrlo jednostavnom i omogućuje aplikaciji da se razdvoji s puno poslovne logike.

Stvaranje nove teme

Možemo stvoriti testnu temu testiranje na Apache Kafka poslužitelju sljedećom naredbom:

Stvaranje teme

sudo kafka-teme.sh --create --zookeeper localhost: 2181 - faktor replikacije 1
--particije 1 - tematsko ispitivanje

Evo što vraćamo ovom naredbom:

Stvori novu Kafkinu temu


Stvorit će se testna tema koju možemo potvrditi spomenutom naredbom:

Potvrda stvaranja teme Kafka

Pisanje poruka na temu

Kao što smo ranije proučavali, jedan od API-ja prisutan u Apache Kafki je API proizvođača. Koristit ćemo ovaj API za stvaranje nove poruke i objavljivanje u temi koju smo upravo kreirali:

Pisanje poruke temi

sudo kafka-proizvođač konzola.sh --broker-list localhost: 9092 - tematsko testiranje

Pogledajmo izlaz za ovu naredbu:

Objavi poruku Kafki Topic


Jednom kada pritisnemo tipku, vidjet ćemo novu strelicu (>) što znači da sada možemo unositi podatke:

Utipkavanje poruke


Samo unesite nešto i pritisnite da biste započeli novi redak. Utipkao sam 3 retka teksta:

Čitanje poruka iz teme

Sad kad smo objavili poruku o temi Kafka koju smo stvorili, ova će poruka biti prisutna neko vrijeme koje se može konfigurirati. Sad ga možemo pročitati pomoću Potrošački API:

Čitanje poruka iz teme

sudo kafka-konzola-potrošač.sh --čuvar lokalnog domaćina: 2181 --
ispitivanje teme - od početka

Evo što vraćamo ovom naredbom:

Naredba za čitanje poruke Kafke Topića


Moći ćemo vidjeti poruke ili retke koje smo napisali pomoću API-ja proizvođača, kao što je prikazano dolje:

Ako napišemo još jednu novu poruku pomoću API-ja proizvođača, ona će se također odmah prikazati na strani Potrošač:

Objavite i potrošite istovremeno

Zaključak

U ovoj smo lekciji pogledali kako počinjemo koristiti Apache Kafka koji je izvrstan posrednik poruka, a može djelovati i kao posebna jedinica za trajnost podataka.

Top 5 karata za hvatanje igara
Svi smo vidjeli i voljeli streaming reprodukcije na YouTubeu. PewDiePie, Jakesepticye i Markiplier samo su neki od najboljih igrača koji su zaradili m...
Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...
Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...