Apache Kafka

Mi az Apache Kafka és hogyan működik??

Mi az Apache Kafka és hogyan működik??

Ebben a leckében meglátjuk, hogy mi az Apache Kafka, és hogyan működik a legelterjedtebb használati eseteivel együtt.  Az Apache Kafka-t eredetileg a LinkedIn-ben fejlesztették 2010-ben, és 2012-ben költöztek el legfelsõbb Apache-projektvé. Három fő összetevője van:

Sokkal több Kafka-fogalmat fogunk tanulmányozni a következő szakaszokban. Menjünk előre.

Apache Kafka fogalmak

Mielőtt elmélyülnénk, alaposan át kell gondolnunk az Apache Kafka néhány fogalmát. Itt vannak azok a kifejezések, amelyeket nagyon röviden tudnunk kell:

Témapartíciók

A témakör, a topikpartíciók és az ofszet koncepciója szemléltető ábrával is egyértelművé tehető:

Témafelosztás és fogyasztói kompenzáció Apache Kafkában

Apache Kafka mint közzététel-feliratkozás üzenetkezelő rendszer

A Kafka alkalmazásával a Producer alkalmazások olyan üzeneteket tesznek közzé, amelyek egy Kafka csomóponthoz érkeznek, és nem közvetlenül a fogyasztóhoz. Ebből a Kafka csomópontból az üzeneteket a Consumer alkalmazások fogyasztják.

Kafka Producer és Consumer

Mivel egyetlen téma rengeteg adatot képes egyszerre megszerezni, hogy a Kafka vízszintesen skálázható legyen, az egyes témák partíciók és minden partíció a fürt bármely csomópont-gépén élhet.

A Kafka Broker ismét nem vezet nyilvántartást arról, hogy melyik fogyasztó hány adatcsomagot fogyasztott el. Ez a a fogyasztók felelőssége az általa felhasznált adatok nyomon követése. Annak okán, hogy a Kafka nem tartja nyilván az egyes fogyasztói alkalmazások nyugtázását és üzeneteit, sokkal több fogyasztót tud kezelni, elhanyagolható mértékben befolyásolva az áteresztőképességet. A gyártásban sok alkalmazás még a kötegelt fogyasztók mintáját követi, ami azt jelenti, hogy a fogyasztó az összes üzenetet egy sorban, rendszeres időközönként elfogyasztja.

Telepítés

Az Apache Kafka használatának megkezdéséhez telepíteni kell a gépre. Ehhez olvassa el az Apache Kafka telepítése az Ubuntun című cikket.

Felhasználási eset: Webhely-használat követése

A Kafka kiváló eszköz, amelyet akkor kell használni, ha nyomon kell követnünk a tevékenységet egy weboldalon. A nyomonkövetési adatok magukban foglalják, és nem korlátozódnak azokra az oldalmegtekintésekre, keresésekre, feltöltésekre vagy a felhasználók által végrehajtott egyéb műveletekre. Amikor egy felhasználó webhelyen tartózkodik, a felhasználó tetszőleges számú műveletet hajthat végre, amikor szörfözik a webhelyen.

Például, amikor egy új felhasználó regisztrál egy webhelyre, akkor a tevékenység nyomon követhető, hogy az új felhasználó milyen sorrendben tárja fel a webhely jellemzőit, ha a felhasználó szükség szerint beállítja a profilját, vagy inkább közvetlenül áttér a weboldal. Amikor a felhasználó rákattint egy gombra, a gomb metaadatait összegyűjti egy adatcsomagba, és elküldi a Kafka-fürtbe, ahonnan az alkalmazás elemzési szolgáltatása összegyűjtheti ezeket az adatokat, és hasznos betekintést nyújthat a kapcsolódó adatokra. Ha a feladatokat lépésekre szeretnénk osztani, akkor a folyamat így fog kinézni:

  1. A felhasználó regisztrál egy weboldalon, és belép az irányítópultba. A felhasználó megpróbál azonnal elérni egy funkciót egy gombnyomással.
  2. A webalkalmazás ezzel a metaadattal létrehoz egy üzenetet a „kattintás” témakör partíciójára.
  3. Az üzenet a véglegesítési naplóhoz csatolódik, és az eltolás növekszik
  4. A fogyasztó most kihúzhatja az üzenetet a Kafka Broker-től, és valós időben megmutathatja a weboldal használatát, és megmutathatja a múltbeli adatokat, ha az eltolást visszaállítja egy lehetséges múltbeli értékre

Felhasználási eset: Üzenetsor

Az Apache Kafka kiváló eszköz, amely az üzenetközvetítő eszközök, például a RabbitMQ helyettesítésére szolgál. Az aszinkron üzenetküldés segít az alkalmazások szétválasztásában, és rendkívül skálázható rendszert hoz létre.

A mikroszolgáltatások koncepciójához hasonlóan egy nagy alkalmazás felépítése helyett több részre is fel tudjuk osztani az alkalmazást, és mindegyik résznek nagyon sajátos felelőssége van. Így a különböző részek teljesen független programozási nyelveken is írhatók! A Kafka beépített particionálási, replikációs és hibatűrő rendszerrel rendelkezik, amely nagyszerű üzenetközvetítő rendszerként jó.

A közelmúltban a Kafka egy nagyon jó naplógyűjtési megoldásnak is tekinthető, amely képes kezelni a naplófájl-gyűjtő szerver közvetítőt, és ezeket a fájlokat egy központi rendszerhez juttatja. A Kafka segítségével bármilyen esemény előidézhető, amelyről tudni szeretné az alkalmazás bármely más részéről.

A Kafka használata a LinkedIn-en

Érdekes megemlíteni, hogy az Apache Kafkát korábban úgy tekintették és használták, hogy az adatvezetékeket konzisztenssé tehetik, és amelyek révén az adatok bekerülhetnek a Hadoopba. A Kafka kiválóan dolgozott, amikor több adatforrás és rendeltetési hely volt jelen, és a forrás és a cél egyes kombinációihoz nem volt lehetséges különálló folyamatot biztosítani. Jay Kreps, a LinkedIn Kafka építésze, jól leírja ezt az ismerős problémát egy blogbejegyzésben:

Saját részvételem ebben az ügyben 2008 körül kezdődött, miután kiszállítottuk a kulcsértékű üzletünket. A következő projektem az volt, hogy megpróbáltam elindítani egy működő Hadoop telepítést, és áthelyezni néhány ajánlási folyamatunkat. Kevés tapasztalattal rendelkezünk ezen a területen, természetesen néhány hetet különítettünk el az adatok be- és kiszállítására, a fennmaradó időnket pedig divatos előrejelző algoritmusok megvalósítására. Így kezdődött egy hosszú szlogen.

Apache Kafka és Flume

Ha elmozdul, hogy összehasonlítsa ezt a kettőt a funkcióik alapján, rengeteg közös tulajdonságot talál. Itt van néhány közülük:

Következtetés

Ebben a leckében számos fogalmat néztünk meg Apache Kafkáról. További Kafka-alapú bejegyzéseket itt olvashat.

Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...
HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...
Az AutoKey használata a Linux játékok automatizálásához
Az AutoKey egy asztali automatizáló segédprogram Linux és X11 rendszerekhez, Python 3, GTK és Qt programozással. A parancsfájlok és a MACRO funkcióina...