Velkommen til Kafkaland! (Norsk)

(Bartha Bela Tibor) (19. juni 2020)

Intro

Hvis du noen gang har jobbet med meldingskø eller streamingplattformer, Kafka er en du bør sjekke. Det er best å bruke datastreaming i sanntid.

Hvis du vurderer Kafka for søknaden din, er Kafka best for følgende brukstilfeller:

  • Pub / Undermeldinger
  • Strømbehandling
  • Datalagring

Først og fremst, før du berører Kafka, bør du vite følgende: Kafka brenner fort, du har enorm frihet, og det er lett å gå galt med det når du kommer fra en annen meldingsplattform.

I denne artikkelen vil vi fokusere på å gjøre ting riktig med Kafka.

Nøkkel Konsepter:

  • melding : dataenhet
  • emne : datakanal
  • partisjon : emner kan ha flere partisjoner
  • forskyvning : posisjon for en melding i en partisjon
  • produsent : lar et program publisere data til et gitt emne
  • forbruker : applikasjonen kan konsumere data fra ett eller flere emner. Ett emne kan ha flere forbrukere. Forbrukere kan abonnere på et hvilket som helst antall partisjoner av et emne.
  • forbrukergrupper : forbrukere kan organiseres i forbrukergrupper som leser fra et emne, parallelt når de leser fra forskjellige partisjoner
  • megler : administrerer lagring av emner
  • klynge : flere meglere, som inneholder flere meglere
  • leder / replika : hver megler inneholder et antall partisjoner av et emne, hver av disse kan være en leder eller en replika. Alle skriver og leser til et emne blir utført på lederen, som koordinerer oppdatering av replikaene. Hvis en leder mislykkes, tar en replika rollen som leder

Mer om grunnleggende om Kafka finner du her .

Grunnleggende om Node.js

For denne introen bruker vi Node.js, og vi lager grunnleggende produsent og forbruker.

Først av alt, du installerer Kafka lokalt som beskrevet her .

Denne artikkelen forutsetter at vi bare har en megler.

Emner vil opprettes før applikasjonen vår kjøres, se nedenfor.

I øyeblikket du skriver denne introen, er det tre stabile pakker å bruke med NodeJS:

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

Alle disse fungerer på samme måte, til innledning bruker vi node-rdkafka ( npm install node-rdkafka )

Forutsatt at du har installert Kafka lokalt med standardinnstillinger og startet en megler, kan vi opprette en enkel produsent og forbruker.

Opprett emnet manuelt:

Opprett produsent, og lag en hendelse:

Opprett forbrukeren og konsumér hendelsen (e):

Dette er et eksempel for en flytende forbruker. Det forbruker hendelser slik de vises på emnet. En annen mulighet er å bruke en ikke-flytende forbruker, ved å spesifisere antall hendelser som skal konsumeres som parameter for forbruker. Forbruker (nummer). I dette tilfellet får vi meldingene etter at vi har antall uforbrukte meldinger i emnet.

Forplikter

Siden Kafka ble designet for å feile sikkerhet, kan forbrukerne merke meldingene som forbrukte – forpliktet . Som standard gjør node-rdkafka auto-commits , det kan også gjøres manuelt: consumer.commit () eller consumer.commitMessage (melding) .

Hvis forbrukeren kobles fra, kan en annen forbruker fortsette fra den engasjerte meldingen.

Velkommen til Kafkaland! Kos deg!

Dette er den første fra en serie på fire artikler. Vil følge opp med spesifikke tilfeller av bruk av Kafka for: mikrotjenester, chatbots og fintech-prosjekter. Yay!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *