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/ alatt | Felelősség |
|---|---|
env.ts | Környezeti változók betöltése és Zod-validáció |
config.ts | Alkalmazás- és admin kliens konfiguráció |
producer.ts | JSON-küldés opcionális explicit partícióval |
consumer.ts | JSON-dekódolás, handler-futtatás és manuális offset-commit |
partition-admin.ts | Topic-létrehozás és partíciószám-ellenőrzés vagy -bővítés |
topics.ts | Topic-regiszter |
core-service.ts | Megosztott 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/ alatt | Felelősség |
|---|---|
runKT.ts | Fastify-belépési pont és kérésfeldolgozás |
events/mailbox-event.ts | Mailbox-eseményszerződés |
modules/runtime/kafka-tester.service.ts | Consumer- és dispatcher-orchestráció |
modules/mailbox/ | Felhasználók, projekció, feldolgozás és workerek |
scripts/producer-daemon.ts | Interaktí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.