Sobes.tech
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.