EMZETT.
Login

Bulkhead-Muster

Kurz: Das Bulkhead-Muster („Schottwand”) trennt Ressourcen so, dass der Ausfall oder die Überlastung eines Teils nicht das ganze System mitreißt.

Genauer: Der Name stammt aus dem Schiffbau: Wasserdichte Schotten sorgen dafür, dass ein Leck nur eine Kammer flutet. In Software bekommt jede Abhängigkeit oder Kundengruppe eigene Ressourcen, etwa einen eigenen Thread- oder Verbindungspool.

Im Detail

  • Problem: Ruft ein Dienst langsame Partner auf einem gemeinsamen Pool auf, belegen die hängenden Anfragen irgendwann alle Threads. Danach stehen auch die Aufrufe zu gesunden Partnern still.
  • Lösung: Für jeden Partner ein eigener, begrenzter Pool. Ist er voll, schlagen nur Aufrufe an diesen Partner fehl.
  • Varianten: getrennte Prozesse oder Container, getrennte Warteschlangen, getrennte Datenbankverbindungen, Kontingente pro Mandant.
  • Zusammenspiel: Mit einem Circuit Breaker, Timeouts und Wiederholungen bildet es die Grundausstattung für Ausfallsicherheit.
  • Preis: Getrennte Pools nutzen die Hardware schlechter aus, denn freie Plätze in einem Pool helfen dem anderen nicht.

Siehe auch: Backpressure