Apache Kafka

Hvad er Apache Kafka, og hvordan fungerer det?

Hvad er Apache Kafka, og hvordan fungerer det?

I denne lektion vil vi se, hvad der er Apache Kafka, og hvordan fungerer det sammen med nogle af de mest almindelige brugssager.  Apache Kafka blev oprindeligt udviklet på LinkedIn i 2010 og flyttede til at blive et top-niveau Apache-projekt i 2012. Det har tre hovedkomponenter:

Vi vil studere mange flere Kafka-koncepter i de kommende sektioner. Lad os gå videre.

Apache Kafka-koncepter

Inden vi graver dybere, skal vi være grundige omkring nogle begreber i Apache Kafka. Her er de vilkår, vi bør kende meget kort:

Emne Partitioner

Konceptet for emne, emnepartitioner og offset kan også gøres klart med en illustrativ figur:

Emnedeling og forbrugeroffset i Apache Kafka

Apache Kafka som meddelelsessystem for Publish-subscribe

Med Kafka offentliggør producentapplikationerne meddelelser, der ankommer til en Kafka-node og ikke direkte til en forbruger. Fra denne Kafka-node forbruges meddelelser af forbrugerapplikationerne.

Kafka Producent og Forbruger

Da et enkelt emne kan få mange data på én gang, for at holde Kafka vandret skalerbar er hvert emne opdelt i skillevægge og hver partition kan leve på enhver knudemaskine i en klynge.

Igen fører Kafka Broker ikke optegnelser over, hvilken forbruger, der har brugt, hvor mange datapakker. Det er forbrugernes ansvar for at holde styr på de data, den har brugt. På grund af grunden til, at Kafka ikke holder styr på anerkendelser og meddelelser fra hver forbrugerapplikation, kan den administrere mange flere forbrugere med ubetydelig indflydelse på gennemstrømningen. I produktionen følger mange applikationer endda et mønster af batchforbrugere, hvilket betyder, at en forbruger forbruger alle meddelelserne i en kø med jævne mellemrum.

Installation

For at begynde at bruge Apache Kafka skal den være installeret på maskinen. For at gøre dette skal du læse Installer Apache Kafka på Ubuntu.

Brugssag: Sporing af brug af websteder

Kafka er et fremragende værktøj, der skal bruges, når vi har brug for at spore aktivitet på et websted. Sporingsdataene inkluderer og er ikke begrænset til sidevisninger, søgninger, uploads eller andre handlinger, som brugerne kan foretage. Når en bruger er på et websted, kan brugeren muligvis foretage et vilkårligt antal handlinger, når han / hun surfer gennem hjemmesiden.

For eksempel, når en ny bruger registrerer sig på et websted, spores aktiviteten muligvis i hvilken rækkefølge udforsker en ny bruger funktionerne på et websted, hvis brugeren indstiller deres profil efter behov eller foretrækker at springe direkte videre til funktionerne i internet side. Når brugeren klikker på en knap, samles metadataene for den knap i en datapakke og sendes til Kafka-klyngen, hvorfra analysetjenesten til applikationen kan indsamle disse data og producere nyttig indsigt i de relaterede data. Hvis vi ønsker at opdele opgaverne i trin, er det sådan, hvordan processen vil se ud:

  1. En bruger registrerer sig på et websted og går ind i instrumentbrættet. Brugeren prøver straks at få adgang til en funktion ved at interagere med en knap.
  2. Webapplikationen konstruerer en besked med denne metadata til en emnepartition af emnet "klik".
  3. Meddelelsen føjes til forpligtelsesloggen, og forskydningen øges
  4. Forbrugeren kan nu trække beskeden fra Kafka Mægleren og vise webstedsbrug i realtid og vise tidligere data, hvis den nulstiller sin forskydning til en mulig tidligere værdi

Brugssag: Beskedkø

Apache Kafka er et fremragende værktøj, der kan fungere som erstatning for meddelelsesmæglerværktøjer som RabbitMQ. Asynkron messaging hjælper med at afkoble applikationerne og skaber et meget skalerbart system.

Ligesom begrebet mikrotjenester kan vi i stedet for at bygge en stor applikation opdele applikationen i flere dele, og hver del har et meget specifikt ansvar. På denne måde kan de forskellige dele også skrives på helt uafhængige programmeringssprog! Kafka har indbygget system til partitionering, replikering og fejltolerance, der gør det godt som et stort beskedmæglersystem.

For nylig ses Kafka også som en meget god løsning til logindsamling, der kan styre logfilopsamlingsservermægler og levere disse filer til et centralt system. Med Kafka er det muligt at generere enhver begivenhed, som du vil have andre dele af din applikation at vide om.

Brug af Kafka på LinkedIn

Det er interessant at bemærke, at Apache Kafka tidligere blev set og brugt som en måde, hvorpå datarørledninger kunne gøres konsistente, og gennem hvilke data blev indtaget i Hadoop. Kafka fungerede fremragende, når flere datakilder og destinationer var til stede, og det var ikke muligt at levere en separat pipeline-proces for hver kombination af kilde og destination. LinkedIn's Kafka-arkitekt, Jay Kreps, beskriver dette velkendte problem i et blogindlæg:

Mit eget engagement i dette startede omkring 2008, efter at vi havde sendt vores nøgleværdibutik. Mit næste projekt var at forsøge at få et fungerende Hadoop-setup i gang og flytte nogle af vores anbefalingsprocesser derhen. Med lidt erfaring inden for dette område budgetterede vi naturligvis et par uger til at få data ind og ud, og resten af ​​vores tid til implementering af smarte forudsigelsesalgoritmer. Så begyndte en lang slog.

Apache Kafka og Flume

Hvis du flytter ud for at sammenligne disse to på baggrund af deres funktioner, finder du en masse fælles funktioner. Her er nogle af dem:

Konklusion

I denne lektion kiggede vi på mange begreber om Apache Kafka. Læs flere Kafka-baserede indlæg her.

Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...
Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...