Udviklere beskriver Kafka som et "Distribueret, fejltolerant, høj kapacitet, pub-sub, beskedsystem. " Kafka er velkendt som en partitioneret, distribueret og replikeret commit log-tjeneste. Den giver også funktionaliteten af et meddelelsessystem, men med et unikt design. På den anden side er MongoDB kendt som "databasen for kæmpe ideer. " MongoDB er i stand til at lagre data i JSON-lignende dokumenter, der kan variere i struktur, hvilket tilbyder et dynamisk, fleksibelt skema. MongoDB er designet til høj tilgængelighed og skalerbarhed med indbygget replikering og auto-sharding.
MongoDB er klassificeret under "Databaser", mens Kafka tilhører kategorien "Message Queue" i teknologistakken. Udviklere betragter Kafka "High-throughput", "Distribueret" og "Scalable" som nøglefaktorerne; hvorimod "Dokumentorienteret lagring", "Ingen SQL" og "Ease of use" betragtes som de primære årsager til, at MongoDB foretrækkes.
Datastreaming i Kafka
I nutidens dataøkosystem er der ikke noget enkelt system, der kan give alle de nødvendige perspektiver til at levere reel indsigt i dataene. At opnå bedre visualisering af dataindsigt fra data kræver blanding af en enorm mængde information fra flere datakilder. Som sådan er vi ivrige efter at få svar med det samme; hvis den tid, det tager at analysere dataindsigter, overstiger 10s af millisekunder, så er værdien tabt eller irrelevant. Applikationer som svindeldetektion, højfrekvent handel og anbefalingsmotorer har ikke råd til at vente. Denne operation er også kendt som at analysere indstrømningen af data, før den bliver opdateret som en rekorddatabase med nultolerance for tab af data, og udfordringen bliver endnu mere skræmmende.
Kafka hjælper dig med at indtage og hurtigt flytte pålidelige store mængder data fra flere datakilder og derefter omdirigere dem til de systemer, der har brug for det, ved at filtrere, aggregere og analysere undervejs. Kafka har en højere gennemstrømning, pålidelighed og replikeringsegenskaber, en skalerbar metode til at kommunikere strømme af begivenhedsdata fra en eller flere Kafka-producenter til en eller flere Kafka-forbrugere. Eksempler på begivenheder omfatter:
- Loftforureningsdata indsamlet baseret på periodisk basis
- En forbruger, der tilføjer en vare til indkøbskurven i en onlinebutik
- Et tweet med et specifikt hashtag
Strømme af Kafka-begivenheder fanges og organiseres i foruddefinerede emner. Kafka-producenten vælger et emne at sende en given begivenhed til, og forbrugerne vælger, hvilke emner de trækker begivenheder fra. For eksempel kan en finansiel applikation på aktiemarkedet trække aktiehandler fra et emne og virksomhedsøkonomiske oplysninger fra et andet for at lede efter handelsmuligheder.
MongoDB og Kafka-samarbejde udgør hjertet i mange moderne dataarkitekturer i dag. Kafka er designet til grænseløse datastrømme, der sekventielt skriver hændelser ind i commit-logfiler, hvilket tillader databevægelse i realtid mellem MongoDB og Kafka gennem brugen af Kafka Connect.
Den officielle MongoDB Connector til Kafka blev udviklet og understøttet af MongoDB Inc. ingeniører. Det er også verificeret af Confluent (som var banebrydende for den virksomhedsklare begivenhedsstreamingplatform), i overensstemmelse med retningslinjerne, som blev opstillet af Confluents Verified Integrations Program. Konnektoren gør det muligt for MongoDB at blive konfigureret som både en vask og en kilde til Kafka. Byg nemt robuste, reaktive datapipelines, der streamer hændelser mellem applikationer og tjenester i realtid.
MongoDB Sink Connector
MongoDB Sink giver os mulighed for at skrive begivenheder fra Kafka til vores MongoDB-instans. Sink-stikket konverterer værdien fra Kafka Connect SinkRecords til et MongoDB-dokument og vil indsætte eller ophæve afhængigt af den konfiguration, du har valgt. Det forventede, at databasen blev oprettet på forhånd, de målrettede MongoDB-samlinger blev oprettet, hvis de ikke eksisterer.
MongoDB Kafka Source Connector
MongoDB Kafka-kildeforbindelsen flytter data fra et MongoDB-repliksæt til en Kafka-klynge. Connectoren konfigurerer og bruger ændringsstrømbegivenhedsdokumenter og udgiver dem til et emne. Change streams, en funktion introduceret i MongoDB 3.6, genererer hændelsesdokumenter, der indeholder ændringer til data gemt i MongoDB i realtid og giver garantier for holdbarhed, sikkerhed og idempotens. Du kan konfigurere ændringsstrømme til at observere ændringer på indsamlings-, database- eller implementeringsniveau. Den bruger følgende indstillinger til at oprette ændringsstrømme og tilpasse output til at gemme i Kafka-klyngen. Det vil offentliggøre de ændrede datahændelser til et Kafka-emne, der består af databasen og samlingsnavnet, som ændringen stammer fra.
MongoDB &Kafka Use Cases
e-handelswebsteder
Brug af et e-handelswebsted, hvor lagerdataene gemmes i MongoDB. Når lagerbeholdningen af produktet kommer under en vis tærskel, vil virksomheden gerne afgive en automatisk ordre for at øge lagerbeholdningen. Bestillingsprocessen udføres af andre systemer uden for MongoDB, og brugen af Kafka som platform for sådanne begivenhedsdrevne systemer er et godt eksempel på styrken af MongoDB og Kafka, når de bruges sammen.
Sporing af webstedsaktivitet
Webstedsaktivitet såsom besøgte sider eller gengivet annoncer indfanges i Kafka-emner – ét emne pr. datatype. Disse emner kan derefter forbruges af flere funktioner såsom overvågning, realtidsanalyse eller arkivering til offlineanalyse. Indsigt fra de data, der er gemt i en operationel database som MongoDB, hvor de kan analyseres sammen med data fra andre kilder.
Internet of Things (IoT)
IoT-applikationer skal klare et massivt antal hændelser, der genereres af en lang række enheder. Kafka spiller en afgørende rolle i at levere fan-in og realtidsindsamling af alle disse sensordata. En almindelig anvendelse er telematik, hvor diagnostik fra et køretøjs sensorer skal modtages og behandles tilbage ved basen. Når først de er fanget i Kafka-emner, kan dataene behandles på flere måder, herunder stream-behandling eller Lambda-arkitekturer. Det vil sandsynligvis også blive gemt i en operationel database såsom MongoDB, hvor det kan kombineres med andre lagrede data for at udføre realtidsanalyser og understøtte operationelle applikationer såsom at udløse personlige tilbud.
Konklusion
MongoDB er velkendt som ikke-relationelle databaser, som udgives under en fri-og-open source-licens, MongoDB er primært en dokumentorienteret database, beregnet til brug med semi-strukturerede data som f.eks. tekstdokumenter. Det er den mest populære moderne database bygget til at håndtere enorme og massive mængder af heterogene data.
Kafka er en meget populær distribueret streamingplatform, som tusindvis af virksomheder som New Relic, Uber og Square bruger til at bygge skalerbare, høj-throughput og pålidelige real-time streaming-systemer.
Sammen spiller MongoDB og Kafka vitale roller i vores dataøkosystem og mange moderne dataarkitekturer.