Skip to main content

Kafka architecture és forrástérkép

A backend szétválasztja az újrahasználható transport- és mintakódot a KafkaTester-specifikus orchestrációtól. Az alapokat olvasd el, mielőtt ezt a forrástérképet használod.

Újrahasználható mag​

A src/lib/kafka/ alattFelelősség
env.tsKörnyezeti változók betöltése és Zod-validáció
config.tsAlkalmazás- és admin kliens konfiguráció
producer.tsJSON-küldés opcionális explicit partícióval
consumer.tsJSON-dekódolás, handler-futtatás és manuális offset-commit
partition-admin.tsTopic-létrehozás és partíciószám-ellenőrzés vagy -bővítés
topics.tsTopic-regiszter
core-service.tsMegosztott szolgáltatás-életciklus
patterns/Outbox, idempotencia és szekvenciális partícióhozzárendelés

A megosztott Kafka-típusok a src/lib/types/kafka/ alatt vannak. Az adatbázis-modellek közé tartozik a MailboxUser, a SequentialTopicPartition, az OutboxEvent és a ProcessedKafkaMessage a Prisma kafka sémájában.

KafkaTester​

A src/services/KafkaTester/ alattFelelősség
runKT.tsFastify-belépési pont és kérésfeldolgozás
events/mailbox-event.tsMailbox-eseményszerződés
modules/runtime/kafka-tester.service.tsConsumer- és dispatcher-orchestráció
modules/mailbox/Felhasználók, projekció, feldolgozás és workerek
scripts/producer-daemon.tsInteraktív producer

Az aktuális modulútvonalakat használd, ne a régebbi, lapos services/ elrendezést.

Runtime-szerepek​

A producer sorba állítja vagy explicit módon publikálja a kért munkát. Az outbox dispatcher lefoglalja és publikálja a függő rekordokat. A mailbox consumer kezeli az eseményt, és rögzíti a feldolgozási eredményt. A dev:kt egyesíti a consumert, a dispatchert és a HTTP health endpointot.

Válaszd az all-in-one vagy a felosztott CLI-futtatást. Ne futtasd véletlenül mindkettőt ugyanazon a gyakorlati adatbázison vagy streamen.

Állapot-felelősség​

A megosztott patterns/outbox/outbox-publisher.ts birtokolja a dispatch-lefoglalásokat és a publikálás lezárását. A KafkaTester mailbox-feldolgozása birtokolja a saját fogyasztási eredményét. A közös nyomkövetési és státuszsegédek betartatják az átmeneteket. Lásd a pontos mintaviselkedést.

A Kafka-producer hitelesítő adatai az alkalmazási szerepet használják. A topic- és partícióműveletek külön admin szerepet használnak. A kliensek kikapcsolják az automatikus topic-létrehozást. A producer bekapcsolja az idempotenciát és az acks=all beállítást. A consumer kikapcsolja az automatikus commitot, és a handler után commitál.

A mailbox-routing a kanonikus felhasználói kulcsot és a tartós explicit partíciót tartalmazza. A Kafka-sorrend csak partíción belül érvényes. Az adatbázis-offset deduplikáció nem hoz létre pontosan egyszeri külső provider-írást. Az alkalmazásnak továbbra is egyeztetnie kell az elfogadott műveleteket a provider állapotával.

A beállításokhoz, indításhoz és üzemeltetési ellenőrzésekhez használd a fejlesztői útmutatót.