Apache Kafka

Apache Kafka pomocí klíčů pro rozdělení

Apache Kafka pomocí klíčů pro rozdělení
Apache Kafka je platforma pro streamování dat zodpovědná za streamování dat z řady Zdroje hodně cíle. Zdroje se také nazývají výrobci. Vytvořená data potřebuje úplně jiná skupina s názvem spotřebitelé pro různé účely. Kafka je vrstva, která sedí mezi producenty a spotřebiteli a agreguje data do použitelného kanálu. Samotná Kafka je také distribuovaná platforma, takže vrstva Kafka se skládá z různých serverů provozujících kafku, tyto servery nebo uzly jsou proto známé jako Kafka Zprostředkovatelé.

Tento přehled je trochu abstraktní, takže pojďme to uzemnit ve scénáři reálného světa, představte si, že musíte sledovat několik webových serverů. Každý provozuje svůj vlastní web a každou sekundu dne se v každém z nich neustále generují nové protokoly. Kromě toho existuje řada e-mailových serverů, které musíte také sledovat.

Možná budete muset tato data uložit pro účely vedení záznamů a fakturace, což je dávková úloha, která nevyžaduje okamžitou pozornost. Možná budete chtít spustit analýzu dat, abyste mohli rozhodovat v reálném čase, což vyžaduje přesné a okamžité zadání dat.  Najednou se ocitnete v potřebě racionalizovat data rozumným způsobem pro všechny různé potřeby. Kafka funguje jako ta vrstva abstrakce, ke které může více zdrojů publikovat různé proudy dat a dané spotřebitel se může přihlásit k odběru streamů, které považuje za relevantní. Kafka se ujistí, že data jsou dobře uspořádaná. Je to vnitřní část Kafky, kterou musíme pochopit, než se dostaneme k tématu Rozdělení a klíče.

Témata, makléř a oddíly společnosti Kafka

Kafka Témata jsou jako tabulky databáze. Každé téma se skládá z dat z konkrétního zdroje konkrétního typu. Například stav vašeho clusteru může být tématem skládajícím se z informací o využití CPU a paměti. Podobně může být dalším tématem příchozí provoz do celého clusteru.

Kafka je navržena tak, aby byla horizontálně škálovatelná. To znamená, že jedna instance Kafky se skládá z více Kafky makléři běží na více uzlech, každý může zpracovávat streamy dat paralelně s druhým. I když několik uzlů selže, váš datový kanál může nadále fungovat. Konkrétní téma lze poté rozdělit na několik oddíly. Toto rozdělení je jedním z rozhodujících faktorů horizontální škálovatelnosti Kafky.

Násobek výrobci, zdroje dat pro dané téma, mohou na toto téma zapisovat současně, protože každý v kterémkoli bodě zapisuje do jiného oddílu. Nyní jsou obvykle data náhodně přiřazena k oddílu, pokud jim neposkytneme klíč.

Rozdělení a objednávání

Jen pro rekapitulaci, producenti zapisují data k danému tématu. Toto téma je ve skutečnosti rozděleno do několika oddílů. A každý oddíl žije nezávisle na ostatních, dokonce i pro dané téma. To může vést k velkému zmatku, když záleží na objednávání dat. Možná potřebujete data v chronologickém pořadí, ale mít více oddílů pro datový tok nezaručuje dokonalé uspořádání.

Na každé téma můžete použít pouze jeden oddíl, ale to maří celý účel distribuované architektury Kafky. Potřebujeme tedy nějaké jiné řešení.

Klávesy pro oddíly

Data od výrobce jsou do oddílů zasílána náhodně, jak jsme již zmínili dříve. Zprávy jsou skutečné bloky dat. Producenti mohou kromě posílání zpráv udělat i přidání klíče, který k tomu patří.

Všechny zprávy, které přicházejí s konkrétním klíčem, budou odeslány do stejného oddílu. Například aktivitu uživatele lze sledovat chronologicky, pokud jsou jeho data označena klíčem, takže vždy končí v jednom oddílu. Říkejme tomuto oddílu p0 a uživateli u0.

Oddíl p0 vždy vyzvedne zprávy související s u0, protože tento klíč je spojuje dohromady. Ale to neznamená, že p0 je spojeno pouze s tím. Může také přijímat zprávy z u1 a u2, pokud má na to kapacitu. Podobně mohou ostatní oddíly využívat data od ostatních uživatelů.

Bod, že data daného uživatele nejsou rozšířena mezi různé oddíly, což zajišťuje chronologické řazení pro daného uživatele. Celkovým tématem uživatelská data, stále může využívat distribuovanou architekturu Apache Kafka.

Závěr

Zatímco distribuované systémy jako Kafka řeší některé starší problémy, jako je nedostatečná škálovatelnost nebo selhání jediného bodu. Přicházejí s řadou problémů, které jsou jedinečné pro jejich vlastní design. Předvídání těchto problémů je základní prací každého systémového architekta. Nejen to, někdy opravdu musíte udělat analýzu nákladů a přínosů, abyste zjistili, zda jsou nové problémy hodným kompromisem, jak se zbavit těch starších. Objednávání a synchronizace jsou jen špičkou ledovce.

Doufejme, že vám články jako tyto a oficiální dokumentace mohou při tom pomoci.

Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...
Hry Nejlepší hry Oculus App Lab
Nejlepší hry Oculus App Lab
Pokud jste vlastníkem náhlavní soupravy Oculus, musíte mít informace o bočním nakládání. Sideloading je proces instalace neukládaného obsahu do náhlav...