Apache Kafka

Apache Kafka vejledning

Apache Kafka vejledning
I denne lektion vil vi se, hvordan vi kan bruge Apache Kafka, og hvad er dens anvendelse. Vi vil grundigt se på forskellige terminologier, der er involveret i det, og også begynde at arbejde med dem.

Apache Kafka

For en definition på højt niveau, lad os præsentere en kort definition for Apache Kafka:

Apache Kafka er en distribueret, fejltolerant, vandret skalerbar, log.

Det var nogle ord på højt niveau om Apache Kafka. Lad os forstå begreberne i detaljer her.

Et emne i Apache Kafka er ligesom en kø, hvor meddelelser gemmes. Disse meddelelser gemmes i en konfigurerbar tid, og beskeden slettes først, før denne tid er nået, selvom den er forbrugt af alle kendte forbrugere.

Kafka er skalerbart, da det er forbrugerne, der faktisk gemmer, at hvilken besked der blev hentet af dem sidst som en 'offset' værdi. Lad os se på en figur for at forstå dette bedre:

Emnedeling og forbrugeroffset i Apache Kafka

Kom godt i gang med Apache Kafka

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.

Sørg for, at du har en aktiv Kafka-installation, hvis du vil prøve eksempler, vi præsenterer senere i lektionen.

Hvordan virker det?

Med Kafka, Producent applikationer offentliggør Beskeder der ankommer til en Kafka Node og ikke direkte til en forbruger. Fra denne Kafka-node forbruges meddelelser af Forbruger applikationer.

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. Lad os prøve at præsentere det:

Emne Partitioner


Igen registrerer Kafka Broker ikke, hvilken forbruger, der har brugt, hvor mange datapakker. Det er forbrugernes ansvar for at holde styr på de data, den har brugt.

Persistens til disk

Kafka fortsætter de meddelelsesregistreringer, den får fra producenter på disken, og holder dem ikke i hukommelsen. Et spørgsmål, der kan opstå, er, hvordan dette gør tingene gennemførlige og hurtige? Der var flere grunde bag dette, hvilket gør det til en optimal måde at styre meddelelsesoptegnelserne på:

Datadistribution og replikering

Som vi studerede ovenfor, at et emne er opdelt i partitioner, replikeres hver meddelelsespost på flere noder i klyngen for at opretholde rækkefølgen og dataene for hver post, hvis en af ​​noderne dør.

Selvom en partition replikeres på flere noder, er der stadig en partition leder node, gennem hvilken applikationer læser og skriver data om emnet, og lederen replikerer data om andre noder, der betegnes som tilhængere af denne partition.

Hvis meddelelsesregistreringsdataene er meget vigtige for en applikation, kan garantien for, at meddelelsesregistreringen er sikker i en af ​​knudepunkterne øges ved at øge replikationsfaktor af klyngen.

Hvad er Zookeeper?

Zookeeper er en meget fejltolerant, distribueret nøgleværdibutik. Apache Kafka afhænger stærkt af Zookeeper for at gemme klyngemekanik som hjerterytme, distribuere opdateringer / konfigurationer osv.).

Det giver Kafka-mæglerne mulighed for at abonnere på sig selv og vide, hvornår der er sket nogen ændring vedrørende en partitionsleder og nodefordeling.

Producent- og forbrugerapplikationer kommunikerer direkte med Zookeeper applikation til at vide, hvilken node der er partitionslederen for et emne, så de kan udføre læser og skriver fra partitionslederen.

Streaming

En streamprocessor er en hovedkomponent i en Kafka-klynge, der tager en kontinuerlig strøm af meddelelsesregistreringsdata fra inputemner, behandler disse data og opretter en datastrøm til outputemner, der kan være hvad som helst, fra papirkurven til en database.

Det er fuldstændigt muligt at udføre enkel behandling direkte ved hjælp af producent / forbruger-API'er, selvom Kafka til kompleks behandling som at kombinere streams leverer et integreret Streams API-bibliotek, men bemærk at denne API er beregnet til at blive brugt inden for vores egen codebase, og det gør det ikke ' ikke køre på en mægler. Det fungerer svarende til forbruger-API'en og hjælper os med at skalere strømbehandlingsarbejdet over flere applikationer.

Hvornår skal jeg bruge Apache Kafka?

Som vi studerede i ovenstående afsnit, kan Apache Kafka bruges til at håndtere et stort antal meddelelsesposter, der kan høre til et næsten uendeligt antal emner i vores systemer.

Apache Kafka er en ideel kandidat, når det kommer til at bruge en tjeneste, der kan give os mulighed for at følge begivenhedsdrevet arkitektur i vores applikationer. Dette skyldes dets egenskaber med datapretention, fejltolerant og stærkt distribueret arkitektur, hvor kritiske applikationer kan stole på dens ydeevne.

Den skalerbare og distribuerede arkitektur i Kafka gør integration med mikrotjenester meget let og gør det muligt for en applikation at afkoble sig selv med en masse forretningslogik.

Oprettelse af et nyt emne

Vi kan oprette et testemne testning på Apache Kafka-server med følgende kommando:

Opret et emne

sudo kafka-emner.sh --create --zookeeper localhost: 2181 - replikationsfaktor 1
--partitioner 1 - test af emner

Her er hvad vi kommer tilbage med denne kommando:

Opret nyt Kafka-emne


Et testemne oprettes, som vi kan bekræfte med den nævnte kommando:

Bekræftelse af oprettelse af Kafka-emne

Skrivning af beskeder på et emne

Som vi studerede tidligere, er en af ​​de API'er, der findes i Apache Kafka, den Producent API. Vi bruger denne API til at oprette en ny besked og offentliggøre det emne, vi lige har oprettet:

Skriv besked til emnet

sudo kafka-konsol-producent.sh - broker-list localhost: 9092 - emnetestning

Lad os se output for denne kommando:

Publicer besked til Kafka Topic


Når vi har trykket på tasten, ser vi et nyt pil (>) tegn, som betyder, at vi kan komme ud af data nu:

Indtastning af en besked


Indtast bare noget, og tryk på for at starte en ny linje. Jeg skrev 3 linjer tekst:

Læsning af beskeder fra emnet

Nu hvor vi har offentliggjort en besked om det Kafka-emne, vi oprettede, vil denne besked være der i et konfigurerbart tidsrum. Vi kan læse det nu ved hjælp af Forbruger-API:

Læsning af beskeder fra emnet

sudo kafka-konsol-forbruger.sh --zookeeper localhost: 2181 --
emnetestning - fra start

Her er hvad vi kommer tilbage med denne kommando:

Kommando til at læse Besked fra Kafka Emne


Vi kan se de meddelelser eller linjer, vi har skrevet ved hjælp af Producer API som vist nedenfor:

Hvis vi skriver en ny ny besked ved hjælp af Producer API, vises den også med det samme på forbrugerens side:

Udgiv og forbrug på samme tid

Konklusion

I denne lektion kiggede vi på, hvordan vi begynder at bruge Apache Kafka, som også er en fremragende meddelelsesmægler og også kan fungere som en speciel dataudholdenhedsenhed.

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...