Välkommen till Kafkaland!

Publicerad

(Bartha Bela Tibor) (19 juni 2020)

Intro

Om du någonsin arbetat med meddelandekö eller streamingplattformar, Kafka är en som du bör kontrollera. Den bästa användningen är för datastreaming i realtid.

Om du överväger Kafka för din applikation är Kafka bäst för följande användningsfall:

  • Pub / Undermeddelanden
  • Strömbearbetning
  • Datalagring

Först och främst bör man känna till följande innan man rör vid Kafka: Kafka flammar snabbt, du har enorm frihet och det är lätt att gå fel med det när du kommer från en annan meddelandeköplattform.

I den här artikeln kommer vi att fokusera på att göra saker rätt med Kafka.

Nyckel Begrepp:

  • meddelande : dataenhet
  • ämne : datakanal
  • partition : ämnen kan ha fler partitioner
  • offset : position för ett meddelande i en partition
  • producent : tillåter en applikation att publicera data till ett visst ämne
  • konsument : applikationen kan konsumera data från ett eller flera ämnen. Ett ämne kan ha flera konsumenter. Konsumenter kan prenumerera på valfritt antal partitioner i ett ämne.
  • konsumentgrupper : konsumenter kan organiseras i konsumentgrupper som läser från ett ämne, parallellt när de läser från olika partitioner
  • mäklare : hanterar lagring av ämnen
  • kluster : flera mäklare, som innehåller flera mäklare
  • ledare / replik : varje mäklare innehåller ett antal partitioner av ett ämne, var och en av dessa kan vara en ledare eller en replik. Alla skrivningar och läsningar till ett ämne utförs på ledaren, som samordnar uppdateringen av replikerna. Om en ledare misslyckas tar en kopia rollen som ledaren

Mer om Kafka-grunderna finns här .

Grunder med Node.js

För denna introduktion använder vi Node.js och vi skapar grundläggande producent och konsument.

Först och främst, du installerar Kafka lokalt enligt beskrivningen här .

Denna artikel förutsätter att vi bara har en mäklare.

Ämnen kommer att skapas innan vår applikation körs, se nedan.

När detta intro skrivs finns det tre stabila paket att använda med NodeJS:

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

Alla dessa fungerar på samma sätt, för introduktion använder vi node-rdkafka ( npm install node-rdkafka )

Förutsatt att du har installerat Kafka lokalt med standardinställningar och startat en mäklare kan vi skapa en enkel producent och konsument.

Skapa ämnet manuellt:

Skapa producent och skapa en händelse:

Skapa konsumenten och konsumera händelser:

Detta är ett exempel för en flytande konsument. Det förbrukar händelser som de visas i ämnet. En annan möjlighet är att använda en icke-flytande konsument genom att ange antalet händelser som ska konsumeras som parameter för konsument. Konsumera (nummer). I det här fallet får vi meddelandena efter att ha haft antal okonsumerade meddelanden i ämnet.

Åtar sig

Eftersom Kafka har utformats för säkerhetsfel kan konsumenter markera meddelandena som förbrukade – engagerade . Som standard gör node-rdkafka auto-commits , det kan också göras manuellt: consumer.commit () eller consumer.commitMessage (meddelande) .

Om konsumenten kopplas bort kan en annan konsument fortsätta från det engagerade meddelandet.

Välkommen till Kafkaland! Njut!

Detta är det första från en serie med fyra artiklar. Kommer att följa upp specifika fall av Kafka-användning för: mikrotjänster, chatbots och fintech-projekt. Yay!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *