Apache Kafka

Što je Apache Kafka i kako to djeluje?

Što je Apache Kafka i kako to djeluje?

U ovoj ćemo lekciji vidjeti što je Apache Kafka i kako to funkcionira zajedno s nekim najčešćim slučajevima korištenja.  Apache Kafka izvorno je razvijen u LinkedInu 2010. godine, a 2012. postao je Apache projekt najviše razine. Sadrži tri glavne komponente:

U sljedećim ćemo odjeljcima proučavati puno više Kafkinih koncepata. Idemo naprijed.

Koncepti Apache Kafke

Prije nego što dublje zakopamo, moramo biti temeljiti u vezi s nekim konceptima u Apache Kafki. Evo pojmova koje bismo trebali znati vrlo kratko:

Tematske particije

Koncept teme, particija teme i pomaka također se može jasno objasniti ilustrativnom slikom:

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

Apache Kafka kao sustav za razmjenu poruka Publish-subscribe

Uz Kafku, producent aplikacije objavljuju poruke koje stižu na Kafka čvor, a ne izravno potrošaču. Iz ovog Kafka čvora poruke konzumiraju potrošačke 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.

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. Iz razloga što Kafka ne prati potvrde i poruke svake potrošačke aplikacije, može upravljati s mnogo više potrošača s zanemarivim utjecajem na protok. U proizvodnji mnoge aplikacije čak slijede obrazac serijskih potrošača, što znači da potrošač u redovitim intervalima troši sve poruke u redu čekanja.

Montaža

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

Slučaj upotrebe: Praćenje upotrebe web mjesta

Kafka je izvrstan alat koji se koristi kada trebamo pratiti aktivnosti na web mjestu. Podaci o praćenju uključuju, bez ograničenja, prikaze stranica, pretraživanja, prijenose ili druge radnje koje korisnici mogu poduzeti. Kada je korisnik na web mjestu, korisnik može poduzeti bilo koji broj radnji kada surfa web stranicom.

Na primjer, kada se novi korisnik registrira na web mjestu, aktivnost se može pratiti onim redoslijedom kojim novi korisnik istražuje značajke web mjesta, ako korisnik postavi svoj profil po potrebi ili želi izravno skočiti na značajke web stranice web stranica. Kad god korisnik klikne gumb, metapodaci za taj gumb prikupljaju se u podatkovnom paketu i šalju klasteru Kafka odakle služba analitike za aplikaciju može prikupiti te podatke i dati korisne uvide u povezane podatke. Ako zadatke želimo podijeliti u korake, evo kako će izgledati postupak:

  1. Korisnik se registrira na web mjestu i ulazi na nadzornu ploču. Korisnik pokušava odmah pristupiti značajci interakcijom s gumbom.
  2. Web aplikacija izrađuje poruku s ovim metapodacima na particiji teme "klik".
  3. Poruka se dodaje zapisniku urezivanja i povećava se pomak
  4. Potrošač sada može povući poruku Kafka Brokera i prikazati upotrebu web stranica u stvarnom vremenu i prikazati prošle podatke ako resetira svoj pomak na moguću prošlu vrijednost

Slučaj upotrebe: Red čekanja za poruke

Apache Kafka izvrstan je alat koji može djelovati kao zamjena za alate za posredovanje poruka poput RabbitMQ. Asinkrono slanje poruka pomaže u razdvajanju aplikacija i stvara visoko skalabilan sustav.

Baš kao i koncept mikro usluga, umjesto da gradimo jednu veliku aplikaciju, možemo i mi podijeliti aplikaciju na više dijelova i svaki dio ima vrlo specifičnu odgovornost. Na taj se način različiti dijelovi mogu pisati i na potpuno neovisnim programskim jezicima! Kafka ima ugrađeni sustav za particioniranje, replikaciju i otpornost na greške što ga čini dobrim kao sustav za brokeriranje poruka.

U posljednje vrijeme Kafka se također vidi kao vrlo dobro rješenje za prikupljanje dnevnika koje može upravljati posrednikom poslužitelja za prikupljanje datoteka dnevnika i pružiti te datoteke središnjem sustavu. Pomoću Kafke moguće je generirati bilo koji događaj za koji želite da bilo koji drugi dio vaše aplikacije zna.

Korištenje Kafke na LinkedInu

Zanimljivo je primijetiti da je Apache Kafka ranije viđen i korišten kao način na koji cjevovodi podataka mogu biti usklađeni i putem kojih se podaci unose u Hadoop. Kafka je izvrsno radio kada je bilo prisutno više izvora podataka i odredišta, a pružanje odvojenog postupka cjevovoda za svaku kombinaciju izvora i odredišta nije bilo moguće. LinkedIn-ov arhitekt Kafka, Jay Kreps dobro opisuje ovaj poznati problem u blogu:

Moje vlastito sudjelovanje u ovome započelo je oko 2008. nakon što smo poslali našu trgovinu ključeva i vrijednosti. Moj sljedeći projekt bio je pokušati pokrenuti ispravnu postavku Hadoopa i tamo premjestiti neke od naših preporuka. Imajući malo iskustva u ovom području, prirodno smo proračunali nekoliko tjedana za ulazak i izlaz podataka, a ostatak vremena za implementaciju otmjenih algoritama predviđanja. Tako je započeo dugi slogan.

Apache Kafka i Flume

Ako se odlučite usporediti ovo dvoje na temelju njihovih funkcija, pronaći ćete puno zajedničkih značajki. Ovo su neki od njih:

Zaključak

U ovoj smo lekciji pogledali mnoge koncepte o Apacheu Kafki. Ovdje pročitajte više postova temeljem Kafke.

Pokazivač skače ili se slučajno pomiče dok tipkate u sustavu Windows 10
Ako ustanovite da kursor miša sam skače ili se pomiče automatski, nasumično dok tipkate u Windows prijenosnom računalu ili računalu, neki od ovih prij...
Kako obrnuti smjer pomicanja miša i dodirnih pločica u sustavu Windows 10
Miš i Dodirna pločaRačunarstvo ne samo da olakšava, već i učinkovitije i oduzima puno vremena. Ne možemo zamisliti život bez ovih uređaja, ali činjeni...
Kako promijeniti pokazivač miša i veličinu, boju i shemu pokazivača na sustavu Windows 10
Pokazivač i pokazivač miša u sustavu Windows 10 vrlo su važni aspekti operativnog sustava. To se može reći i za druge operativne sustave, tako da u is...