Apache Kafka

Co je Apache Kafka a jak to funguje?

Co je Apache Kafka a jak to funguje?

V této lekci uvidíme, co je Apache Kafka a jak funguje spolu s některými nejčastějšími případy použití.  Apache Kafka byl původně vyvinut na LinkedIn v roce 2010 a od roku 2012 se stal projektem nejvyšší úrovně Apache. Má tři hlavní součásti:

V dalších částech si prostudujeme mnohem více konceptů Kafky. Pojďme kupředu.

Koncepty Apache Kafka

Než se podíváme hlouběji, musíme si důkladně promyslet některé koncepty v Apache Kafce. Zde jsou termíny, které bychom měli vědět, velmi stručně:

Tématické oddíly

Koncept Topic, Topic Partitions a offset lze také objasnit pomocí ilustrativního obrázku:

Tématický partion a offset pro spotřebitele v Apache Kafka

Apache Kafka as Publish-subscribe messaging system

S aplikací Kafka aplikace Producer publikují zprávy, které přicházejí na uzel Kafka, a nikoli přímo spotřebiteli. Z tohoto uzlu Kafka jsou zprávy spotřebovávány aplikacemi Consumer.

Výrobce a spotřebitel společnosti Kafka

Jelikož jediné téma může získat spoustu dat najednou, je každé téma rozděleno na, aby byla Kafka horizontálně škálovatelná oddíly a každý oddíl může žít na jakémkoli uzlovém stroji klastru.

Kafka Broker opět nevede záznamy o tom, který spotřebitel spotřeboval kolik paketů dat. To je odpovědnost spotřebitelů sledovat údaje, které spotřebovala. Z důvodu, že Kafka nesleduje potvrzení a zprávy každé spotřebitelské aplikace, může spravovat mnohem více spotřebitelů se zanedbatelným dopadem na propustnost. Ve výrobě se mnoho aplikací dokonce řídí vzorem dávkových spotřebitelů, což znamená, že spotřebitel spotřebuje všechny zprávy ve frontě v pravidelném časovém intervalu.

Instalace

Chcete-li začít používat Apache Kafka, musí být na počítači nainstalován. Chcete-li to provést, přečtěte si Instalovat Apache Kafka na Ubuntu.

Případ použití: Sledování používání webových stránek

Kafka je vynikající nástroj, který lze použít, když potřebujeme sledovat aktivitu na webu. Data pro sledování zahrnují mimo jiné zobrazení stránky, vyhledávání, nahrávání nebo jiné akce, které uživatelé mohou provést. Když je uživatel na webu, může při surfování na webu provést libovolný počet akcí.

Například když se nový uživatel zaregistruje na webu, může být aktivita sledována v jakém pořadí nový uživatel zkoumá funkce webu, pokud si uživatel nastaví svůj profil podle potřeby nebo upřednostňuje přímý skok k funkcím webová stránka. Kdykoli uživatel klikne na tlačítko, metadata pro toto tlačítko se shromáždí v datovém paketu a odešlou do clusteru Kafka, odkud analytická služba pro aplikaci může tato data shromažďovat a vytvářet užitečné informace o souvisejících datech. Pokud se podíváme na rozdělení úkolů do kroků, bude vypadat takto:

  1. Uživatel se zaregistruje na webu a vstoupí do řídicího panelu. Uživatel se pokusí o okamžitý přístup k prvku interakcí s tlačítkem.
  2. Webová aplikace vytvoří zprávu s těmito metadaty do tematické oblasti tématu „kliknout“.
  3. Zpráva se připojí k protokolu potvrzení a posun se zvýší
  4. Spotřebitel nyní může vytáhnout zprávu od Kafka Broker a ukázat využití webu v reálném čase a zobrazit minulá data, pokud resetuje jeho offset na možnou minulou hodnotu

Případ použití: Fronta zpráv

Apache Kafka je vynikající nástroj, který může fungovat jako náhrada za nástroje pro zprostředkování zpráv, jako je RabbitMQ. Asynchronní zasílání zpráv pomáhá při oddělení aplikací a vytváří vysoce škálovatelný systém.

Stejně jako koncept mikroslužeb můžeme namísto vytváření jedné velké aplikace můžeme aplikaci rozdělit na více částí a každá část má velmi konkrétní odpovědnost. Tímto způsobem lze různé části psát také ve zcela nezávislých programovacích jazycích! Kafka má zabudovaný systém dělení, replikace a odolnosti proti chybám, díky kterému je dobrý jako rozsáhlý systém zprostředkování zpráv.

V poslední době je Kafka také považována za velmi dobré řešení pro sběr protokolů, které dokáže spravovat broker serveru pro sběr souborů protokolů a poskytovat tyto soubory centrálnímu systému. Pomocí Kafky je možné vygenerovat jakoukoli událost, o které chcete, aby o ní věděla jakákoli jiná část vaší aplikace.

Používání Kafky na LinkedIn

Je zajímavé poznamenat, že Apache Kafka byl dříve viděn a používán jako způsob, kterým lze zajistit konzistentnost datových kanálů a prostřednictvím kterých se data přijímají do Hadoopu. Kafka fungovala excelentně, když bylo přítomno více zdrojů dat a cílů a poskytnutí samostatného procesu pro každou kombinaci zdroje a cíle nebylo možné. Jay Kreps, architekt Kafky z LinkedIn, popisuje tento známý problém dobře v příspěvku na blogu:

Moje vlastní zapojení do toho začalo kolem roku 2008 poté, co jsme odeslali náš obchod s klíči a hodnotou. Mým dalším projektem bylo pokusit se spustit fungující nastavení Hadoop a přesunout tam některé naše procesy doporučení. Vzhledem k tomu, že v této oblasti máme jen málo zkušeností, měli jsme přirozeně rozpočet na několik týdnů na získávání a odchod dat a zbytek času na implementaci efektních predikčních algoritmů. Tak začal dlouhý slog.

Apache Kafka a žlab

Pokud se přesunete k porovnání těchto dvou na základě jejich funkcí, najdete spoustu společných funkcí. Tady jsou některé z nich:

Závěr

V této lekci jsme se podívali na mnoho konceptů o Apache Kafce. Přečtěte si více příspěvků založených na Kafce zde.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...