Apache Kafka

Mis on Apache Kafka ja kuidas see töötab?

Mis on Apache Kafka ja kuidas see töötab?

Selles õppetükis näeme, mis on Apache Kafka ja kuidas see töötab koos oma kõige levinumate kasutusjuhtumitega.  Apache Kafka töötati algselt välja LinkedInis 2010. aastal ja kolis 2012. aastal tipptasemel Apache projektiks. Sellel on kolm põhikomponenti:

Uurime järgmistes osades palju rohkem Kafka kontseptsioone. Liigume edasi.

Apache Kafka mõisted

Enne süvenemist peame Apache Kafka mõisteid põhjalikult käsitlema. Siin on terminid, mida peaksime väga lühidalt teadma:

Teema vaheseinad

Teema, teema vaheseinte ja nihke kontseptsiooni saab selgeks teha ka illustreeriva joonisega:

Teema partitsioon ja tarbija tasaarvestus Apache Kafkas

Apache Kafka avaldamise-tellimise sõnumsüsteemina

Kafkaga avaldavad Produceri rakendused sõnumeid, mis saabuvad Kafka sõlme, mitte otse tarbijale. Selle Kafka sõlme kaudu tarbivad sõnumeid tarbijarakendused.

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.

Kafka maakler jällegi ei pea arvestust selle kohta, milline tarbija on tarbinud mitu andmepaketti. See on tarbijate kohustus jälgida tarbitud andmeid. Kuna Kafka ei jälgi iga tarbijarakenduse kinnitusi ja sõnumeid, saab see hallata palju rohkem tarbijaid, millel on tühise mõju läbilaskvusele. Tootmises järgivad paljud rakendused isegi partiitarbijate mustrit, mis tähendab, et tarbija tarbib kõik järjekorras olevad sõnumid korrapärase ajavahemiku järel.

Paigaldamine

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

Kasutusjuhtum: Veebisaidi kasutamise jälgimine

Kafka on suurepärane vahend, mida kasutada, kui peame veebisaidil tegevust jälgima. Jälgimisandmed hõlmavad lehevaatamisi, otsinguid, üleslaadimisi või muid toiminguid, mida kasutajad võivad teha. Kui kasutaja on veebisaidil, võib kasutaja veebisaidil surfates teha mis tahes arvu toiminguid.

Näiteks kui uus kasutaja registreerib end veebisaidil, võidakse tegevust jälgida, millises järjekorras uurib uus kasutaja veebisaidi funktsioone, kui kasutaja määrab oma profiili vastavalt vajadusele või eelistab otse hüpata veebisaidil. Alati, kui kasutaja nuppu klõpsab, kogutakse selle nupu metaandmed andmepaketti ja saadetakse Kafka klastrisse, kust rakenduse analüüsiteenus saab neid andmeid koguda ja seonduvate andmete kohta kasulikke teadmisi luua. Kui soovime jaotada ülesanded sammudeks, näeb protsess välja järgmine:

  1. Kasutaja registreerib end veebisaidil ja siseneb armatuurlauale. Kasutaja proovib nupule suheldes funktsioonile kohe juurde pääseda.
  2. Veebirakendus koostab selle metaandmetega teate teema „klõps” teemajaotise kohta.
  3. Sõnum lisatakse kohustuste logile ja tasaarveldust suurendatakse
  4. Tarbija saab nüüd Kafka maaklerilt sõnumi tõmmata, näidata veebisaidi kasutamist reaalajas ja näidata varasemaid andmeid, kui see lähtestab võimaliku varasema väärtuse

Kasutusjuht: sõnumijärjekord

Apache Kafka on suurepärane tööriist, mis võib asendada sõnumivahendaja tööriistu nagu RabbitMQ. Asünkroonne sõnumside aitab lahutada rakendusi ja loob väga skaleeritava süsteemi.

Täpselt nagu mikroteenuste kontseptsioon, saame ühe suure rakenduse ehitamise asemel jagada rakenduse mitmeks osaks ja igal osal on väga konkreetne vastutus. Nii saab erinevaid osi kirjutada ka täiesti iseseisvates programmeerimiskeeltes! Kafkal on sisseehitatud partitsiooni-, paljundus- ja tõrketaluvussüsteem, mis muudab selle suuremahuliseks sõnumivahendussüsteemiks.

Hiljuti nähakse Kafkat ka väga hea logikogumislahendusena, mis suudab hallata logifailide kogumise serveri maaklerit ja pakkuda neid faile kesksüsteemi. Kafka abil on võimalik genereerida mis tahes sündmus, millest soovite teada oma rakenduse mis tahes muud osa.

Kafka kasutamine LinkedInis

Huvitav on märkida, et Apache Kafkat nähti varem ja seda kasutati viisina, mille kaudu andmesidetorustikke saaks ühtlustada ja mille kaudu andmeid Hadoopi sisestati. Kafka töötas suurepäraselt, kui kohal oli mitu andmeallikat ja sihtkohta ning iga allika ja sihtkoha kombinatsiooni jaoks eraldi torujuhtme protsessi pakkumine ei olnud võimalik. LinkedIni Kafka arhitekt Jay Kreps kirjeldab seda tuttavat probleemi blogipostituses hästi:

Minu enda osalemine selles algas umbes 2008. aastal pärast seda, kui olime oma põhiväärtusega kaupluse tarninud. Minu järgmine projekt oli proovida Hadoopi toimiv seadistamine käivitada ja mõned meie soovitusprotsessid sinna viia. Kuna meil on selles valdkonnas vähe kogemusi, planeerisime loomulikult paar nädalat andmete sisestamiseks ja väljavõtmiseks ning ülejäänud aja uhkete ennustusalgoritmide rakendamiseks. Nii algas pikk loosung.

Apache Kafka ja Flume

Kui te lähete välja nende kahe funktsiooni põhjal võrdlemiseks, leiate palju ühiseid jooni. Siin on mõned neist:

Järeldus

Selles tunnis vaatasime palju Apache Kafka kohta käivaid mõisteid. Loe rohkem Kafka-põhiseid postitusi siit.

Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...
Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...