Üdvözöljük a Kafkalandban!

(Bartha Bela Tibor) (2020.06.19.)

Bevezetés

Ha valaha üzenetsorral vagy streaming platformmal dolgozott, A Kafka az egyik, amelyet ellenőriznie kell. A legjobb, ha valós idejű adatfolyamot használ.

Abban az esetben, ha a Kafka-t fontolgatja az alkalmazásához, a Kafka a legjobb a következő felhasználási esetekhez:

  • Pub / Alsó üzenetküldés
  • Adatfolyam-feldolgozás
  • Adattárolás

Először is, mielőtt hozzáérne Kafkához, tudnia kell a következőket: Kafka gyorsan lángol, óriási szabadsága van, és könnyen tévedhet vele, amikor egy másik üzenetsorozási platformról érkezik.

Ebben a cikkben arra fogunk összpontosítani, hogy a Kafkával helyesen végezzük a dolgokat.

Key Fogalmak:

  • üzenet : adategység
  • topic : adatcsatorna
  • partíció : a témáknak több partíciója lehet
  • offset : egy üzenet helyzete a partícióban
  • producer : lehetővé teszi egy alkalmazás számára, hogy adatokat tegyen közzé egy adott témában
  • fogyasztó : az alkalmazás felhasználhat egy vagy több témakörből származó adatokat. Egy témának több fogyasztója lehet. A fogyasztók feliratkozhatnak a témák tetszőleges számú partíciójára.
  • fogyasztói csoportok : a fogyasztók párhuzamosan különböző témákból olvasó csoportokba szerveződhetnek, amelyek egy témából olvasnak. partíciók
  • broker : kezeli a témák tárolását
  • cluster : több bróker, több brókert tartalmaz
  • vezető / replika : minden bróker számos partíciót tartalmaz egy témában, ezek mindegyike lehet vezető vagy másolat. Minden témára vonatkozó írást és olvasást a vezető végez, amely koordinálja a replikák frissítését. Ha egy vezető kudarcot vall, a replika átveszi a vezető szerepét.

A Kafka alapjairól további információ található itt .

Alapok a Node.js-sel

Ehhez az intróhoz a Node.js-t fogjuk használni, és létrehozunk egy alaptermelőt és -fogyasztót.

Először is, telepíteni fogja a Kafka-t az itt leírtak szerint.

Ez a cikk azt feltételezi, hogy csak egy brókerünk van.

Téma (k) jönnek létre alkalmazásunk futtatása előtt, lásd alább.

Az intro megírásának pillanatában 3 stabil csomag használható a NodeJS-sel:

  1. Csomópont-rdkafka
  2. KafkaJS
  3. Kafka-node

Mindezek hasonló módon működnek, a bevezetéshez a node-rdkafka szót fogjuk használni ( npm install node-rdkafka )

Feltételezve, hogy a Kafkát helyben telepítette alapértelmezett beállításokkal, és elindított egy közvetítőt, létrehozhatunk egy egyszerű gyártót és fogyasztót.

A téma manuális létrehozása:

Producer létrehozása és esemény előállítása:

Hozz létre fogyasztói és fogyasztói eseményeket:

Ez egy példa egy áramló fogyasztóra. Olyan eseményeket emészt fel, amelyek megjelennek a témában. Egy másik lehetőség egy nem áramló fogyasztó használata, megadva az elfogyasztandó események számát paraméterként a fogyasztóhoz.fogyasztás (szám). Ebben az esetben az üzeneteket azután kapjuk meg, hogy számunkban el nem használt üzenetek vannak a témában.

Vállalások

Mivel a Kafkát a hibabiztonság érdekében tervezték, a fogyasztók az üzeneteket elfogyasztottként jelölhetik meg elkötelezett . Alapértelmezés szerint a node-rdkafka automatikusan végzi el a műveleteket, manuálisan is: consumer.commit () vagy consumer.commitMessage (message) .

Ha a fogyasztó nem csatlakozik, egy másik fogyasztó folytathatja az elkötelezett üzenetet.

Üdvözöljük a Kafkalandban! Élvezd!

Ez az első egy négy cikkből álló sorozatból. Nyomon követi a Kafka használatának konkrét eseteit: mikroszolgáltatások, chatbotok és fintech projektek esetében. Igen!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük