Programiści opisują Kafkę jako „rozproszony, odporny na awarie, o wysokiej przepustowości, pub-sub, system przesyłania wiadomości. „ Kafka jest dobrze znana jako podzielona na partycje, rozproszona i replikowana usługa dziennika zatwierdzania. Zapewnia również funkcjonalność systemu przesyłania wiadomości, ale ma unikalny projekt. Z drugiej strony MongoDB jest znana jako „Baza danych dla gigantyczne pomysły. MongoDB jest w stanie przechowywać dane w dokumentach podobnych do JSON, które mogą mieć różną strukturę, oferując dynamiczny, elastyczny schemat. MongoDB zaprojektowano z myślą o wysokiej dostępności i skalowalności, z wbudowaną replikacją i auto-shardingiem.
MongoDB jest sklasyfikowany w kategorii „Bazy danych”, podczas gdy Kafka należy do kategorii „Kolejka wiadomości” stosu technologicznego. Deweloperzy uważają, że Kafka „wysoka przepustowość”, „rozproszona” i „skalowalna” to kluczowe czynniki; mając na uwadze, że „przechowywanie zorientowane na dokumenty”, „brak SQL” i „łatwość użytkowania” są uważane za główne powody, dla których preferowany jest MongoDB.
Przesyłanie strumieniowe danych w Kafce
W dzisiejszym ekosystemie danych nie ma jednego systemu, który może zapewnić wszystkie wymagane perspektywy, aby zapewnić prawdziwy wgląd w dane. Uzyskanie lepszej wizualizacji wglądu w dane z danych wymaga mieszania ogromnej ilości informacji z wielu źródeł danych. W związku z tym jesteśmy chętni do natychmiastowego uzyskania odpowiedzi; jeśli czas potrzebny na analizę szczegółowych informacji o danych przekracza 10 sekund milisekund, wartość jest tracona lub nieistotna. Aplikacje takie jak wykrywanie oszustw, transakcje o wysokiej częstotliwości i silniki rekomendacji nie mogą sobie pozwolić na czekanie. Ta operacja jest również znana jako analiza napływu danych, zanim zostaną zaktualizowane, ponieważ baza danych z zerową tolerancją na utratę danych, a wyzwanie staje się jeszcze bardziej zniechęcające.
Kafka pomaga pozyskiwać i szybko przenosić niezawodnie duże ilości danych z wielu źródeł danych, a następnie przekierowywać je do systemów, które ich potrzebują, filtrując, agregując i analizując na trasie. Kafka ma wyższą przepustowość, niezawodność i charakterystykę replikacji, skalowalną metodę przesyłania strumieni danych o zdarzeniach od jednego lub większej liczby producentów Kafka do jednego lub większej liczby odbiorców Kafka. Przykłady wydarzeń to:
- Dane dotyczące zanieczyszczenia powietrza zbierane okresowo
- Konsument dodający produkt do koszyka w sklepie internetowym
- Tweet opublikowany z określonym hashtagiem
Strumienie wydarzeń Kafki są przechwytywane i porządkowane w predefiniowane tematy. Producent Kafki wybiera temat do wysłania danego wydarzenia, a konsumenci wybierają, z jakich tematów czerpią wydarzenia. Na przykład aplikacja finansowa giełdy może pobierać transakcje giełdowe z jednego tematu, a informacje finansowe firmy z innego w celu wyszukiwania możliwości handlowych.
Współpraca MongoDB i Kafka stanowi obecnie serce wielu nowoczesnych architektur danych. Kafka została zaprojektowana z myślą o nieograniczonych strumieniach danych, które sekwencyjnie zapisują zdarzenia w dziennikach zatwierdzenia, umożliwiając przenoszenie danych w czasie rzeczywistym między MongoDB a Kafką za pomocą Kafka Connect.
Oficjalny łącznik MongoDB dla Kafki został opracowany i jest obsługiwany przez MongoDB Inc. inżynierowie. Jest on również weryfikowany przez firmę Confluent (która jest pionierem platformy do strumieniowego przesyłania zdarzeń dla przedsiębiorstw), zgodnie z wytycznymi określonymi przez program Verified Integrations firmy Confluent. Łącznik umożliwia skonfigurowanie MongoDB zarówno jako ujścia, jak i źródła Kafki. Łatwo twórz solidne, reaktywne potoki danych, które przesyłają strumieniowo zdarzenia między aplikacjami i usługami w czasie rzeczywistym.
Złącze zlewu MongoDB
Sink MongoDB pozwala nam zapisywać zdarzenia z Kafki do naszej instancji MongoDB. Łącznik Sink konwertuje wartość z Kafka Connect SinkRecords na dokument MongoDB i wykona wstawianie lub upsert w zależności od wybranej konfiguracji. Oczekiwał, że baza danych zostanie utworzona z góry, docelowe kolekcje MongoDB utworzone, jeśli nie istnieją.
Łącznik źródłowy MongoDB Kafka
Łącznik źródłowy MongoDB Kafka przenosi dane z repliki MongoDB do klastra Kafka. Łącznik konfiguruje i wykorzystuje dokumenty zdarzeń strumienia zmian oraz publikuje je w temacie. Strumienie zmian, funkcja wprowadzona w MongoDB 3.6, generują dokumenty zdarzeń, które zawierają zmiany w danych przechowywanych w MongoDB w czasie rzeczywistym i zapewniają gwarancje trwałości, bezpieczeństwa i idempotentności. Strumienie zmian można skonfigurować, aby obserwować zmiany na poziomie kolekcji, bazy danych lub wdrożenia. Używa następujących ustawień do tworzenia strumieni zmian i dostosowywania danych wyjściowych w celu zapisania w klastrze Kafka. Opublikuje zmienione zdarzenia danych w temacie Kafki, który składa się z bazy danych i nazwy kolekcji, z której pochodzi zmiana.
Przypadki użycia MongoDB i Kafki
Witryny e-commerce
Użyj strony internetowej eCommerce, w której dane inwentaryzacyjne są przechowywane w MongoDB. Gdy stan magazynowy produktu spadnie poniżej określonego progu, firma chciałaby złożyć automatyczne zamówienie na zwiększenie stanu magazynowego. Proces zamawiania jest wykonywany przez inne systemy poza MongoDB, a użycie Kafki jako platformy dla takich systemów sterowanych zdarzeniami jest doskonałym przykładem potęgi MongoDB i Kafki, gdy są używane razem.
Śledzenie aktywności w witrynie
Aktywność w witrynie, taka jak odwiedzane strony lub renderowane reklamy, są rejestrowane w tematach Kafki – jeden temat na typ danych. Tematy te mogą być następnie wykorzystywane przez wiele funkcji, takich jak monitorowanie, analiza w czasie rzeczywistym lub archiwizacja do analizy offline. Wgląd w dane przechowywane w operacyjnej bazie danych, takiej jak MongoDB, gdzie można je analizować wraz z danymi z innych źródeł.
Internet przedmiotów (IoT)
Aplikacje IoT muszą radzić sobie z ogromną liczbą zdarzeń generowanych przez wiele urządzeń. Kafka odgrywa kluczową rolę w dostarczaniu wachlarza i gromadzenia w czasie rzeczywistym wszystkich danych z czujników. Powszechnym przypadkiem użycia jest telematyka, w której diagnostyka z czujników pojazdu musi być odbierana i przetwarzana z powrotem w bazie. Po uchwyceniu w tematach Kafki dane można przetwarzać na wiele sposobów, w tym przetwarzanie strumieniowe lub architektury Lambda. Prawdopodobnie będzie również przechowywany w operacyjnej bazie danych, takiej jak MongoDB, gdzie można go łączyć z innymi przechowywanymi danymi w celu wykonywania analiz w czasie rzeczywistym i obsługi aplikacji operacyjnych, takich jak uruchamianie spersonalizowanych ofert.
Wnioski
MongoDB jest dobrze znana jako nierelacyjne bazy danych, które są publikowane na licencji wolnego i otwartego oprogramowania. MongoDB jest przede wszystkim bazą danych zorientowaną na dokumenty, przeznaczoną do użytku z częściowo ustrukturyzowanymi danymi, takimi jak dokumenty tekstowe. Jest to najpopularniejsza nowoczesna baza danych stworzona do obsługi ogromnych i ogromnych ilości heterogenicznych danych.
Kafka to szeroko popularna platforma do przesyłania strumieniowego rozproszonego, z której korzystają tysiące firm, takich jak New Relic, Uber i Square, do tworzenia skalowalnych, wydajnych i niezawodnych systemów przesyłania strumieniowego w czasie rzeczywistym.
MongoDB i Kafka razem odgrywają kluczową rolę w naszym ekosystemie danych i wielu nowoczesnych architekturach danych.