Senior
Kaj se zgodi, če je med obogatitvijo eden od storitev nedostopen (na primer, storitev z imenom/ podatki uporabnika)? Ali se celoten Kafka ustavi?
sobes.tech AI
Odpoveď od AI
Ak pri obohacovaní údajov jeden zo služieb, napríklad služba s úplným menom alebo údajmi o používateľovi, nie je dostupný, to nevedie k zastaveniu celého Kafka. Kafka ako systém výmeny správ naďalej funguje, pretože je oddelený od logiky spracovania a obohacovania údajov.
Čo sa deje v praxi:
- Konzument, ktorý číta správy z Kafka a volá službu obohatenia, môže pri prístupe k nedostupnej službe dostať chybu alebo timeout.
- V závislosti od implementácie môže:
- Zaznamenať chybu a preskočiť obohatenie pre danú správu,
- Opakovať pokusy s exponenciálnym oneskorením,
- Poslať správu do DLQ (Dead Letter Queue) na neskoršiu analýzu,
- Pozastaviť spracovanie správ, ak je to kritické.
Týmto spôsobom zlyhanie jedného servisu nezastaví Kafka, ale môže ovplyvniť spracovanie správ v konkrétnom konzumentovi. Pre odolnosť systému sa odporúča implementovať spracovanie chýb a timeoutov, ako aj používať vzory odolnosti, napríklad Circuit Breaker.