Vývojáři popisují Kafka jako "Distribuovaný systém pro zasílání zpráv, odolný vůči chybám, s vysokou propustností, pub-sub." " Kafka je dobře známá jako služba dělených, distribuovaných a replikovaných protokolů odevzdání. Poskytuje také funkce systému zasílání zpráv, ale s jedinečným designem. Na druhou stranu, MongoDB je známá jako "databáze pro obří nápady. " MongoDB je schopen ukládat data v dokumentech podobných JSON, které se mohou lišit strukturou a nabízí dynamické, flexibilní schéma. MongoDB je navržen pro vysokou dostupnost a škálovatelnost s vestavěnou replikací a automatickým shardingem.
MongoDB je klasifikován jako "Databáze", zatímco Kafka patří do kategorie "Message Queue" technologického zásobníku. Vývojáři považují Kafka za klíčové faktory „Vysoká propustnost“, „Distribuovaný“ a „Škálovatelný“; zatímco „úložiště orientované na dokumenty“, „žádné SQL“ a „snadné použití“ jsou považovány za hlavní důvody, proč je MongoDB upřednostňován.
Streamování dat v Kafkovi
V dnešním datovém ekosystému neexistuje jediný systém, který by mohl poskytnout všechny požadované perspektivy, aby poskytl skutečný přehled o datech. Odvození lepší vizualizace datových přehledů z dat vyžaduje smíchání velkého objemu informací z více zdrojů dat. Jako takoví jsme dychtiví získat odpovědi okamžitě; pokud doba potřebná k analýze statistik dat přesáhne 10 s milisekund, pak je hodnota ztracena nebo irelevantní. Aplikace, jako je detekce podvodů, vysokofrekvenční obchodování a nástroje doporučení, si nemohou dovolit čekat. Tato operace je také známá jako analyzování přítoku dat před tím, než se aktualizuje jako databáze záznamů s nulovou tolerancí pro ztrátu dat, a tento úkol je ještě náročnější.
Kafka vám pomáhá zpracovat a rychle spolehlivě přesouvat velké množství dat z různých zdrojů dat a poté je přesměrovat do systémů, které je potřebují, pomocí filtrování, agregace a analýzy na cestě. Kafka má vyšší propustnost, spolehlivost a replikační charakteristiky, což je škálovatelná metoda pro sdělování toků dat událostí od jednoho nebo více producentů Kafka jednomu nebo více spotřebitelům Kafka. Příklady událostí:
- Údaje o znečištění ovzduší zachycované na pravidelném základě
- Spotřebitel přidává položku do nákupního košíku v internetovém obchodě
- Tweet zveřejněný s konkrétním hashtagem
Proudy Kafkových událostí jsou zachycovány a organizovány do předdefinovaných témat. Producent Kafka si vybere téma, na které danou událost pošle, a spotřebitelé si vyberou, z jakých témat události čerpají. Finanční aplikace akciového trhu by například mohla vytáhnout obchody s akciemi z jednoho tématu a finanční informace společnosti z jiného, aby hledala obchodní příležitosti.
Spolupráce MongoDB a Kafka dnes tvoří srdce mnoha moderních datových architektur. Kafka je navržena pro neomezené datové toky, které sekvenčně zapisují události do protokolů odevzdání, což umožňuje pohyb dat mezi MongoDB a Kafka v reálném čase pomocí Kafka Connect.
Oficiální MongoDB Connector pro Kafka byl vyvinut a je podporován společností MongoDB Inc. inženýrů. Je také ověřena společností Confluent (která byla průkopníkem platformy pro streamování událostí připravených pro podniky), a to v souladu s pokyny, které byly stanoveny programem Verified Integrations společnosti Confluent. Konektor umožňuje nakonfigurovat MongoDB jako umyvadlo i jako zdroj pro Kafka. Snadno sestavujte robustní, reaktivní datové kanály, které streamují události mezi aplikacemi a službami v reálném čase.
Konektor jímky MongoDB
Sink MongoDB nám umožňuje zapisovat události z Kafky do naší instance MongoDB. Konektor Sink převede hodnotu z Kafka Connect SinkRecords na dokument MongoDB a provede vložení nebo upsert v závislosti na zvolené konfiguraci. Očekával, že databáze vytvořená předem, cílené kolekce MongoDB vytvořené, pokud neexistují.
Konektor zdroje MongoDB Kafka
Konektor zdroje MongoDB Kafka přesouvá data ze sady replik MongoDB do clusteru Kafka. Konektor konfiguruje a spotřebovává dokumenty událostí toku změn a publikuje je do tématu. Toky změn, funkce představená v MongoDB 3.6, generují dokumenty událostí, které obsahují změny dat uložených v MongoDB v reálném čase a poskytují záruky trvanlivosti, bezpečnosti a idempotence. Toky změn můžete nakonfigurovat tak, aby sledovaly změny na úrovni kolekce, databáze nebo nasazení. K vytvoření toků změn a přizpůsobení výstupu pro uložení do clusteru Kafka používá následující nastavení. Zveřejní změněné datové události do tématu Kafka, které se skládá z databáze a názvu kolekce, ze které změna pochází.
Případy použití MongoDB a Kafky
Weby elektronického obchodu
Použijte případ webové stránky elektronického obchodu, kde jsou data inventáře uložena do MongoDB. Když skladové zásoby produktu klesnou pod určitou hranici, společnost by chtěla zadat automatickou objednávku na zvýšení zásob. Proces objednávání provádějí jiné systémy mimo MongoDB a použití Kafky jako platformy pro takové systémy řízené událostmi je skvělým příkladem síly MongoDB a Kafka, když se používají společně.
Sledování aktivity na webu
Aktivita webu, jako jsou navštívené stránky nebo vykreslené reklamy, jsou zachyceny do témat Kafka – jedno téma na typ dat. Tato témata pak mohou využívat různé funkce, jako je monitorování, analýza v reálném čase nebo archivace pro offline analýzu. Statistiky z dat uložených v provozní databázi, jako je MongoDB, kde je lze analyzovat spolu s daty z jiných zdrojů.
Internet věcí (IoT)
Aplikace IoT se musí vypořádat s velkým množstvím událostí, které generuje velké množství zařízení. Kafka hraje zásadní roli při poskytování sběru všech dat ze senzorů v reálném čase. Častým případem použití je telematika, kde musí být diagnostika ze senzorů vozidla přijímána a zpracovávána zpět na základně. Jakmile jsou data zachycena v tématech Kafka, mohou být zpracována několika způsoby, včetně zpracování streamů nebo architektur Lambda. Je také pravděpodobné, že bude uložen v provozní databázi, jako je MongoDB, kde je lze kombinovat s dalšími uloženými daty pro provádění analýz v reálném čase a podporu provozních aplikací, jako je spouštění personalizovaných nabídek.
Závěr
MongoDB je dobře známá jako nerelační databáze, které jsou publikovány pod licencí free-and-open-source, MongoDB je primárně dokumentově orientovaná databáze určená pro použití s polostrukturovanými daty, jako je textové dokumenty. Je to nejpopulárnější moderní databáze vytvořená pro práci s obrovskými a masivními objemy heterogenních dat.
Kafka je široce oblíbená platforma pro distribuované streamování, kterou tisíce společností jako New Relic, Uber a Square používají k vytváření škálovatelných, vysoce výkonných a spolehlivých systémů pro streamování v reálném čase.
Společně MongoDB a Kafka hrají zásadní roli v našem datovém ekosystému a mnoha moderních datových architekturách.