Velkommen til Kafkaland!

(Bartha Bela Tibor) (19. juni 2020)

Intro

Hvis du nogensinde har arbejdet med meddelelseskø eller streamingplatforme, Kafka er en, du skal kontrollere. Det er bedst at bruge datastreaming i realtid.

Hvis du overvejer Kafka til din applikation, er Kafka bedst til følgende brugssager:

  • Pub / Undermeddelelser
  • Streambehandling
  • Datalagring

Først og fremmest skal man vide følgende, før man rører ved Kafka: Kafka flammer hurtigt, du har enorm frihed, og det er let at gå galt med det, når du kommer fra en anden meddelelses køplatform.

I denne artikel vil vi fokusere på at gøre tingene rigtigt med Kafka.

Nøgle Begreber:

  • meddelelse : dataenhed
  • emne : datakanal
  • partition : emner kan have flere partitioner
  • offset : position for en meddelelse i en partition
  • producent : tillader en applikation at offentliggøre data til et givet emne
  • forbruger : applikationen kan forbruge data fra et eller flere emner. Et emne kan have flere forbrugere. Forbrugere kan abonnere på et vilkårligt antal partitioner af et emne.
  • forbrugergrupper : forbrugere kan organiseres i forbrugergrupper, der læser fra et emne, parallelt når de læser fra forskellige partitioner
  • mægler : administrerer lagring af emner
  • klynge : flere mæglere, der indeholder flere mæglere
  • leder / replika : hver mægler indeholder et antal partitioner af et emne, hver af disse kan være en leder eller en replika. Alle skriv og læsninger til et emne udføres på lederen, som koordinerer opdatering af replikerne. Hvis en leder mislykkes, tager en replika rollen som leder

Mere om Kafka-basics kan findes her .

Grundlæggende med Node.js

Til denne introduktion bruger vi Node.js, og vi opretter grundlæggende producent og forbruger.

Først og fremmest du installerer Kafka lokalt som beskrevet her .

Denne artikel forudsætter, at vi kun har en mægler.

Emne (r) oprettes, før vores applikation køres, se nedenfor.

I øjeblikket for at skrive denne introduktion er der 3 stabile pakker til brug med NodeJS:

  1. Node-rdkafka
  2. KafkaJS
  3. Kafka-node

Alle disse fungerer på samme måde, til introduktion bruger vi node-rdkafka ( npm install node-rdkafka )

Forudsat at du har installeret Kafka lokalt med standardindstillinger og startet en mægler, kan vi oprette en simpel producent og forbruger.

Opret emnet manuelt:

Opret producent, og opret en begivenhed:

Opret forbrugeren og forbrug begivenhederne:

Dette er et eksempel for en flydende forbruger. Det forbruger begivenheder, som de vises på emnet. En anden mulighed er at bruge en ikke-flydende forbruger ved at angive antallet af begivenheder, der skal forbruges, som parameter til forbrugeren. Forbrug (nummer). I dette tilfælde får vi beskederne efter at have antal ikke-forbrugte beskeder i emnet.

Forpligtelse

Da Kafka er designet til fejlsikkerhed, kan forbrugerne markere beskederne som forbrugte – forpligtet . Som standard gør node-rdkafka auto-commits , det kan også gøres manuelt: consumer.commit () eller consumer.commitMessage (meddelelse) .

Hvis forbrugeren er afbrudt, kan en anden forbruger fortsætte fra den forpligtede besked.

Velkommen til Kafkaland! Nyd!

Dette er den første fra en serie på fire artikler. Følger op med specifikke tilfælde af Kafka-brug til: mikrotjenester, chatbots og fintech-projekter. Yay!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *