Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Was ist ein verteiltes System?

Nach dieser Lektion: Ich kann sagen, warum Systeme auf vielen Rechnern laufen und was dabei schiefgehen kann.

Lektion, 50 Min.4 BefehleValkey-Lab: einen Redis-kompatiblen Key-Value-Speicher mit Schlüsseln, Ablaufzeit, Listen und Zählern kennenlernen

Ein Programm auf vielen Rechnern

Ein verteiltes System ist ein Programm, das auf mehreren Rechnern zugleich läuft und für die Nutzenden wie ein einziges wirkt. Man baut es, damit es schneller, größer und ausfallsicherer wird als ein einzelner Rechner.

Ein Ticketshop für ein Konzert in Hamburg bekommt am Verkaufsstart in einer Minute mehr Anfragen als sonst in einem Tag. Ein Rechner allein schafft das nicht.

Am Ende dieser Lektion

Notiz

Ich kann sagen, warum Systeme auf vielen Rechnern laufen und was dabei schiefgehen kann.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Verteiltes Systemmehrere Rechner, die zusammen wie ein Programm arbeiten
Knotenein einzelner Rechner im System
Latenzdie Zeit, die eine Nachricht im Netz unterwegs ist35 ms
Teilausfallein Teil fällt aus, der Rest läuft weiter
Verfügbarkeitder Anteil der Zeit, in dem das System antwortet99,9 %
Skalierungmehr Last tragen, indem man Rechner hinzufügt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Warum reicht ein einzelner Rechner nicht?

Ein Rechner hat Grenzen. Er hat nur wenige Prozessorkerne, nur so viel Speicher, wie eingebaut ist, und er kann ausfallen.

Darum nimmt man mehrere. Drei Gründe zählen: Geschwindigkeit, weil sich viele Anfragen verteilen. Größe, weil die Daten auf eine Platte nicht passen. Ausfallsicherheit, weil ein anderer Rechner übernimmt, wenn einer ausfällt.

Beispiel: drei Gründe für mehrere Rechner

GrundProblem eines RechnersLösung mit mehrerenBeispiel
GeschwindigkeitEr schafft nur 500 Anfragen pro SekundeVier Rechner teilen sich die AnfragenTicketverkauf
GrößeDie Daten sind größer als jede PlatteJeder Rechner hält einen TeilFotoarchiv einer Stadt
AusfallsicherheitFällt er aus, steht alles stillEin zweiter Rechner übernimmtOnline-Banking

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Das Netz macht alles unsicherer

Rechner eines verteilten Systems sprechen über ein Netz. Jede Nachricht braucht Zeit, die Latenz. Eine Nachricht kann spät ankommen, verloren gehen oder doppelt ankommen.

Bleibt eine Antwort aus, wissen Sie nicht, warum. Der andere Knoten kann ausgefallen sein, die Anfrage kann verloren gegangen sein oder nur die Antwort. Das nennt man Teilausfall: Ein Teil fehlt, der Rest läuft.

Ein Zeitlimit zeigt nur, dass nichts kam

Code: python
# Drei Anfragen an einen anderen Rechner. Die Zahlen sind die Antwortzeiten in Millisekunden.
zeitlimit = 200
antwortzeiten = [35, 120, 450]
for zeit in antwortzeiten:
    if zeit <= zeitlimit:
        print(zeit, "ms: Antwort rechtzeitig da")
    else:
        print(zeit, "ms: keine Antwort, der Grund bleibt unbekannt")
# Setzen Sie das Zeitlimit auf 500 und starten Sie erneut.

Einen kleinen Client namens v bauen

Befehl
v() ( printf '%s\r\n' "$*" | nc -w 1 valkey 6379 )

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Fragen, ob der andere Knoten antwortet

Befehl
v PING

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Bestand an Fahrrädern speichern

Befehl
v SET lager:fahrrad 12

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ihn über das Netz wieder lesen

Befehl
v GET lager:fahrrad

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, ein Rechner ohne Antwort sei ausgefallen. Das stimmt nicht immer: Er kann nur langsam sein, oder das Netz hat die Nachricht verloren. Ein Zeitlimit zeigt nur, dass keine Antwort kam, nie den Grund.

Verfügbarkeit lässt sich ausrechnen

Die Verfügbarkeit ist der Anteil der Zeit, in dem ein Teil antwortet. 0,99 heißt 99 von 100 Anfragen.

Brauchen Sie alle Teile, multiplizieren Sie die Werte: Das System wird schlechter. Genügt eine Kopie, multiplizieren Sie die Ausfallanteile (1 minus Wert) und ziehen das Ergebnis von 1 ab: Das System wird besser.

Beispiel: zwei Rechnungen mit 99 Prozent

AufbauRechnungVerfügbarkeit
Zwei Teile, beide nötig0,99 mal 0,990,9801, also 98,01 %
Drei Teile, alle nötig0,99 mal 0,99 mal 0,990,9703, also 97,03 %
Zwei Kopien, eine genügt1 minus (0,01 mal 0,01)0,9999, also 99,99 %

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Über dieses Lab und seinen Quellcode: Valkey-Lab: einen Redis-kompatiblen Key-Value-Speicher mit Schlüsseln, Ablaufzeit, Listen und Zählern kennenlernen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.