Bine ați venit în Kafkaland!

(Bartha Bela Tibor) (19 iunie 2020)

Introducere

Dacă ați lucrat vreodată cu platforme de așteptare a mesajelor sau de streaming, Kafka este unul pe care ar trebui să îl verificați. Cea mai bună utilizare este pentru transmiterea în timp real a datelor.

În cazul în care luați în considerare Kafka pentru aplicația dvs., Kafka este cel mai potrivit pentru următoarele cazuri de utilizare:

  • Pub / Mesagerie secundară
  • Procesarea fluxului
  • Stocarea datelor

În primul rând, înainte de a atinge Kafka, ar trebui să știm următoarele: Kafka se aprinde rapid, aveți o libertate enormă și este ușor să greșiți atunci când proveniți dintr-o altă platformă de așteptare a mesajelor.

În acest articol ne vom concentra pe a face lucrurile bine cu Kafka.

Concepte:

  • mesaj : unitate de date
  • topic : canal de date
  • partiție : subiectele pot avea mai multe partiții
  • offset : poziția unui mesaj într-o partiție
  • producător : permite unei aplicații să publice date pe un anumit subiect
  • consumator : aplicația poate consuma date de la unul sau mai multe subiecte. Un subiect poate avea mai mulți consumatori. Consumatorii se pot abona la orice număr de partiții ale unui subiect.
  • grupuri de consumatori : consumatorii pot fi organizați în grupuri de consumatori, care citesc dintr-un subiect, în paralel când citesc din diferite partiții
  • broker : gestionează stocarea subiectelor
  • cluster : mai mulți brokeri, conținând mai mulți brokeri
  • lider / replică : fiecare broker conține mai multe partiții ale unui subiect, fiecare dintre acestea poate fi un lider sau o replică. Toate scrierile și citirile unui subiect sunt efectuate pe lider, care coordonează actualizarea replicilor. Dacă un lider eșuează, o replică preia rolul de lider

Mai multe despre elementele de bază Kafka pot fi găsite aici .

Noțiuni de bază cu Node.js

Pentru această prezentare vom folosi Node.js și vom crea producător și consumator de bază.

În primul rând, veți instala Kafka local așa cum este descris aici .

Acest articol presupune că avem un singur broker.

Subiectele vor fi create înainte de executarea aplicației noastre, vezi mai jos.

În momentul scrierii acestei introduceri, există 3 pachete stabile de utilizat cu NodeJS:

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

Toate acestea funcționează în mod similar, pentru introducere vom folosi node-rdkafka ( npm install node-rdkafka )

Presupunând că ați instalat Kafka local cu setările implicite și ați început un broker, putem crea un producător și un consumator simplu.

Creați subiectul manual:

Creați producător și produceți un eveniment:

Creați consumatorul și consumați eveniment (e):

Acesta este un exemplu pentru un consumator care circulă. Consumă evenimente pe măsură ce apar pe subiect. O altă posibilitate este de a utiliza un consumator care nu curge, prin specificarea numărului de evenimente de consumat ca parametru pentru consumer.consume (număr). În acest caz, vom primi mesajele după ce avem un număr de mesaje neconsumate în subiect.

Commits

Întrucât Kafka a fost conceput pentru siguranță în caz de defecțiuni, consumatorii pot marca mesajele ca fiind consumate – angajat . În mod implicit, node-rdkafka face auto-commit , de asemenea, se poate face manual: consumer.commit () sau consumer.commitMessage (mesaj) .

În cazul în care consumatorul este deconectat, un alt consumator poate continua mesajul angajat.

Bine ați venit în Kafkaland! Bucurați-vă!

Acesta este primul dintr-o serie de patru articole. Va urma cu cazuri specifice de utilizare a Kafka pentru: microservicii, chatbots și proiecte fintech. Da!

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *