...
Table of Contents | ||
---|---|---|
|
Hvad er en Circuit Breaker
Generelt er Circuit breaker et designmønster, der anvendes i software, til detektere fejl og samtidig omfatter logik der forhindrer en fejl, der konstant gentages, i at påvirke systemets funktionalitet eller tilgængelighed. Fejl kan være afledt af vedligeholdelse, midlertidig ekstern systemfejl eller uventede systemproblemer. Circuit breaker sikrer også, at fejl et sted ikke afstedkommer fejl i den øvrige del af system-landskabet.
Hvordan virker Circuit Breaker i Orkestreringskomponenten
Circuit breaker i Orkestreringskomponenten er bygget således at vedvarende fejl ved kald til en datakilde ikke påvirker svartider fra Orkestreringskomponenten samt minimerer afledt belastning således at visningsklienter får den bedst mulige svartid fra Orkestreringskomponenten.
Circuit breaker virker ved, at når der er observeret x-antal fejlende kald efter hinanden for en bestemt datakilde, så bliver datakilden deaktiveret. Deaktivering betyder at Orkestreringskomponenten, ved efterfølgende kald til enten liste eller detalje, ikke forsøger at kalde en givne datakilde. Orkestreringskomponenten deaktiverer også datakilderne med det samme, hvis der er tale om fejl i forretningslogisk validering. Dette sker, når datakilder forsøger at sende data tilbage på et andet CPR-nummer, end det Orkestreringskomponenten forespørger på.
Datakilden bliver ikke permanent deaktiveret, men deaktiveres kun for at fastsat tidsrum. Når dette tidsrum er udløbet, så forsøger Orkestreringskomponenten at kalde datakilden igen. Ofte vil fejl hos datakilder være at temporær karakter, så det giver god mening at forsøge igen senere. Et servicevindue hos en datakilde kan ofte resultere i timeout, men når servicevinduet er færdigt, vil datakilden svare normalt igen.
...
Circuit breaker opererer per datakilde/per datamodel, dvs. hvis en datakilde bliver deaktiveret af Circuit breakeren, gælder det kun for den datamodel, hvor fejlkald er registreret.
Tærskelværdier
De forskellige tærskelværdier der arbejdes med i Circuit breaker er alle konfigurerbare, og der en individuel værdi per datakilde per datamodel.
...
Værdi for deaktiveringsperiode (ventetid) ved hver deaktivering er en global konfiguration for Orkestreringskomponenten. Er pt. sat til 5 minutter.
Flow for Circuit breaker
Flowet for Circuit breaker er illustreret i nedenstående figur.
...