0 Daumen
226 Aufrufe

Frage:

Gegeben sei ein Circuit Breaker mit folgenden Eigenschaften:

• Bei einer einzigen fehlgeschlagenen Anfrage wird aus Closed nach Open gewechselt.

• Nach 30 Sekunden im Zustand Open wird nach HalfOpen gewechselt.

• Nach drei aufeinanderfolgenden erfolgreichen Anfragen wird aus HalfOpen nach Closed gewechselt.

• Bei jeder fehlgeschlagenen Anfrage wird aus HalfOpen nach Open gewechselt.

Ab einem Zeitpunkt T gehen Anfragen an den Circuit Breaker mit einer konstanten Rate von einer Anfrage pro Sekunde ein. Zum Zeitpunkt T befindet sich der Circuit Breaker im Zustand Closed.

Gehen Sie davon aus, dass der hinter dem Circuit Breaker liegende Backend-Service zum Zeitpunkt T + 10 Sekunden (nach exakt 10 erfolgreichen Anfragen) ausfällt, und für exakt 10 Sekunden nicht verfügbar ist. Ab dem Zeitpunkt T + 20 Sekunden läuft der Backend-Service wieder stabil.

a) Zu welchem Zeitpunkt (wie viele Sekunden nach T ) befindet sich der Circuit Breaker erstmals im Zustand HalfOpen?

b) Zu welchem Zeitpunkt (wie viele Sekunden nach T ) befindet sich der Circuit Breaker zum zweiten mal im Zustand Closed?

c) Betrachten Sie die Zeitspanne vom Zeitpunkt T bis T + 60 Sekunden. Wie viele Anfragen (von externen Clients) wurden in diesem Zeitraum vom Circuit Breaker abgewiesen?

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Antwort:

Um die Fragen zu beantworten, analysieren wir Schritt für Schritt die Zustandswechsel des Circuit Breakers basierend auf den gegebenen Bedingungen und dem Zeitpunkt \(T\).

Annahmen und Zeitpunkte:

- \( T \) = Der Zeitpunkt, an dem die Überprüfung beginnt.
- Ab \( T \) sendet der Client jede Sekunde eine Anfrage.
- Bei einer fehlgeschlagenen Anfrage geht der Circuit Breaker in den Zustand Open.
- Nach 30 Sekunden im Zustand Open wechselt der Circuit Breaker zu HalfOpen.
- Bei drei aufeinanderfolgenden erfolgreichen Anfragen wechselt der Circuit Breaker von HalfOpen zu Closed.
- Jede fehlgeschlagene Anfrage im Zustand HalfOpen bringt den Circuit Breaker zurück zu Open.
- Der Backend-Service fällt genau nach 10 Sekunden aus und ist für weitere 10 Sekunden nicht verfügbar.

a) Zu welchem Zeitpunkt (wie viele Sekunden nach T) befindet sich der Circuit Breaker erstmals im Zustand HalfOpen?

1. Von \( T \) bis \( T+9 \) Sekunden: 10 erfolgreiche Anfragen, Circuit Breaker bleibt im Zustand Closed.
2. Zu \( T+10 \) Sekunden: Die 11. Anfrage schlägt fehl und der Circuit Breaker wechselt zu Open.
3. Zustand Open wird für 30 Sekunden beibehalten.
4. Bei \( T+40 \) Sekunden (d.h. \(T+10 + 30\) Sekunden) wechselt der Circuit Breaker zu HalfOpen.

Daher befindet sich der Circuit Breaker zum ersten Mal im Zustand HalfOpen bei \( T+40 \) Sekunden.

b) Zu welchem Zeitpunkt (wie viele Sekunden nach T) befindet sich der Circuit Breaker zum zweiten Mal im Zustand Closed?

1. Bei \( T+40 \): Der Circuit Breaker befindet sich im Zustand HalfOpen und die erste Anfrage wird gestellt.
2. Bedingungen:
- Wenn diese Anfrage erfolgreich ist, dann brauchen wir insgesamt 3 erfolgreiche Anfragen im Zustand HalfOpen für den Wechsel zu Closed.
- Der Backend-Service wird ab \( T+20 \) wieder stabil, daher ist die Anfrage um \( T+41 \) erfolgreich.
3. 3 erfolgreiche Anfragen im HalfOpen:
- Erste erfolgreiche Anfrage bei \( T+41 \) Sekunden.
- Zweite erfolgreiche Anfrage bei \( T+42 \) Sekunden.
- Dritte erfolgreiche Anfrage bei \( T+43 \) Sekunden.

Daher wechselt der Circuit Breaker zu Closed bei \( T+43 \) Sekunden.

c) Betrachten Sie die Zeitspanne vom Zeitpunkt T bis T + 60 Sekunden. Wie viele Anfragen (von externen Clients) wurden in diesem Zeitraum vom Circuit Breaker abgewiesen?

1. Von \( T \) bis \( T+9 \) Sekunden: 10 erfolgreiche Anfragen, keine werden abgewiesen.
2. Von \( T+10 \) bis \( T+20 \) Sekunden: 10 aufeinanderfolgende fehlgeschlagene Anfragen. Da der Circuit Breaker von \( T+10 \) bis \( T+40 \) im Zustand Open ist, werden alle Anfragen in dieser Zeit abgewiesen.
3. Von \( T+40 \) bis \( T+43 \) Sekunden: Der Circuit Breaker ist im Zustand HalfOpen, nur 3 Anfragen müssen jeweils erfolgreich beantwortet werden. Weitere Anfragen werden in dieser Zeit nicht abgewiesen.
4. Ab \( T+43 \) Sekunden bis \( T+60 \): Der Circuit Breaker ist wieder im Zustand Closed. Alle Anfragen in diesem Zeitraum werden abgewickelt.

Zusammengefasst:
- Abgewiesene Anfragen zwischen \( T+10 \) und \( T+40 \): 30 Anfragen.

Daher wurden in der Zeitspanne von \( T \) bis \( T+60 \) insgesamt 30 Anfragen abgewiesen.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community