Apache Kafka

Kaj je Apache Kafka in kako deluje?

Kaj je Apache Kafka in kako deluje?

V tej lekciji bomo videli, kaj je Apache Kafka in kako deluje, skupaj z nekaterimi najpogostejšimi primeri uporabe.  Apache Kafka je bil prvotno razvit v LinkedInu leta 2010, leta 2012 pa je postal vrhunski projekt Apache. Ima tri glavne komponente:

V naslednjih poglavjih bomo preučili veliko več konceptov Kafke. Gremo naprej.

Apache Kafka Concepts

Preden se poglobimo, se moramo temeljito seznaniti z nekaterimi koncepti v Apache Kafki. Tu so izrazi, ki bi jih morali vedeti na kratko:

Tematske particije

Koncept teme, razdelitve tem in odmika je mogoče pojasniti tudi z ilustrativno sliko:

Delitev teme in odmik potrošnikov v Apache Kafka

Apache Kafka kot sistem za pošiljanje sporočil Objavi-naroči

S programom Kafka aplikacije Producer objavljajo sporočila, ki prispejo na vozlišče Kafka in ne neposredno na potrošnika. Od tega vozlišča Kafka sporočila porabijo potrošniške aplikacije.

Kafka proizvajalec in potrošnik

Ker lahko ena tema naenkrat dobi veliko podatkov, da bo Kafka vodoravno prilagodljiv, je vsaka tema razdeljena na predelne stene in vsaka particija lahko živi na katerem koli vozlišču v gruči.

Ponovno Kafka Broker ne vodi evidence, kateri potrošnik je porabil koliko paketov podatkov. Je odgovornost potrošnikov za evidentiranje podatkov, ki jih je porabila. Ker Kafka ne beleži potrditev in sporočil vsake potrošniške aplikacije, lahko upravlja veliko več potrošnikov z zanemarljivim vplivom na pretočnost. V proizvodnji številne aplikacije celo sledijo vzorcu serijskih potrošnikov, kar pomeni, da potrošnik redno porablja vsa sporočila v čakalni vrsti.

Namestitev

Če želite začeti uporabljati Apache Kafka, ga morate namestiti na stroj. Če želite to narediti, preberite Namesti Apache Kafka v Ubuntu.

Primer uporabe: sledenje uporabi spletnega mesta

Kafka je odlično orodje, ki ga lahko uporabimo, kadar moramo slediti dejavnostim na spletnem mestu. Podatki o sledenju vključujejo in niso omejeni na oglede strani, iskanja, nalaganja ali druga dejanja, ki jih lahko izvajajo uporabniki. Ko je uporabnik na spletnem mestu, lahko uporabnik med brskanjem po spletnem mestu izvede poljubno število ukrepov.

Na primer, ko se novi uporabnik registrira na spletnem mestu, se lahko dejavnosti spremlja, v kakšnem vrstnem redu novi uporabnik raziskuje funkcije spletnega mesta, če uporabnik nastavi svoj profil po potrebi ali raje neposredno preskoči na funkcije spletnega mesta. Spletna stran. Vsakič, ko uporabnik klikne gumb, se metapodatki za ta gumb zberejo v podatkovnem paketu in pošljejo v gručo Kafka, od koder lahko analitična služba za aplikacijo zbere te podatke in da koristne vpoglede v povezane podatke. Če želimo naloge razdeliti na korake, je postopek takšen:

  1. Uporabnik se registrira na spletnem mestu in vstopi na nadzorno ploščo. Uporabnik poskuša takoj dostopati do funkcije z interakcijo z gumbom.
  2. Spletna aplikacija ustvari sporočilo s temi metapodatki za particijo teme »klik«.
  3. Sporočilo se doda dnevniku odobritev in odmik se poveča
  4. Potrošnik lahko zdaj povleče sporočilo Kafka Broker in v realnem času prikaže uporabo spletnega mesta ter prikaže pretekle podatke, če ponastavi svoj odmik na morebitno preteklo vrednost

Primer uporabe: čakalna vrsta sporočil

Apache Kafka je izvrstno orodje, ki lahko nadomesti orodja za posrednike sporočil, kot je RabbitMQ. Asinhrono sporočanje pomaga pri ločevanju aplikacij in ustvarja zelo razširljiv sistem.

Tako kot koncept mikro storitev lahko namesto izdelave ene velike aplikacije tudi aplikacijo razdelimo na več delov in vsak del ima zelo specifično odgovornost. Tako lahko različne dele pišemo tudi v popolnoma neodvisnih programskih jezikih! Kafka ima vgrajen sistem za particioniranje, kopiranje in odpornost na napake, zaradi česar je dober kot obsežen sistem za posredovanje sporočil.

V zadnjem času Kafka velja tudi za zelo dobro rešitev za zbiranje dnevnikov, ki lahko upravlja posrednika strežnika za zbiranje dnevniških datotek in te datoteke posreduje centralnemu sistemu. S programom Kafka lahko ustvarite kateri koli dogodek, za katerega želite, da kateri koli del vaše aplikacije ve.

Uporaba Kafke na LinkedInu

Zanimivo je omeniti, da je bil Apache Kafka že prej viden in uporabljen kot način, s katerim je mogoče uskladiti podatkovne kanale in prek katerega se podatki vnašajo v Hadoop. Kafka je deloval odlično, ko je bilo prisotnih več virov podatkov in ciljev, pri čemer ni bilo mogoče zagotoviti ločenega postopka cevovoda za vsako kombinacijo vira in cilja. Arhitekt Kafke v LinkedInu Jay Kreps dobro pozna to težavo v prispevku v blogu:

Moje sodelovanje pri tem se je začelo okrog leta 2008, potem ko smo poslali trgovino s ključnimi vrednostmi. Moj naslednji projekt je bil poskusiti spodbuditi delujočo nastavitev Hadoopa in premakniti nekaj naših priporočilnih postopkov tja. Ker imamo malo izkušenj na tem področju, smo nekaj tednov seveda predvideli za vnašanje in izhajanje podatkov, ves preostali čas pa za implementacijo modnih algoritmov predvidevanja. Tako se je začel dolg slog.

Apache Kafka in Flume

Če se primerjate na podlagi njihovih funkcij, boste našli veliko skupnih lastnosti. Nekaj ​​jih je:

Zaključek

V tej lekciji smo preučili številne koncepte o Apacheju Kafki. Tukaj preberite več objav na Kafki.

Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...
Kako prikazati prekrivanje zaslonskega menija v celozaslonskih aplikacijah in igrah za Linux
Igranje celozaslonskih iger ali uporaba aplikacij v celozaslonskem načinu brez motenj vam lahko odreže ustrezne sistemske informacije, ki so vidne na ...
Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...