Ein Architekturstil ist ein bewährter Bauplan
Ein Architekturstil ist ein bewährtes Muster dafür, wie die großen Teile eines Systems angeordnet sind und miteinander sprechen. Drei sind besonders verbreitet: Schichten, Dienste und Ereignisse.
Welcher passt, hängt von den Anforderungen ab. Heute lernen Sie, ihn aus den Bedürfnissen zu wählen.
Am Ende dieser Lektion
Notiz
Ich kann aus den Bedürfnissen eines Systems einen Architekturstil wählen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Architektur | die Anordnung der großen Teile eines Systems | |
| Schichtenarchitektur | Teile liegen übereinander, jede nutzt nur die darunter | |
| Dienst | ein eigenes kleines Programm mit einer Aufgabe | Der Dienst Konten |
| Ereignis | eine Meldung, dass etwas geschehen ist | |
| Skalierung | ein System für mehr Last ausbauen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Schichten: jede Ebene nutzt nur die darunter
In einer Schichtenarchitektur liegen die Teile übereinander. Oben steht, was Nutzende sehen, in der Mitte die Regeln, unten die Daten.
Das ist einfach zu verstehen und passt zu einem Team. Es wird eng, wenn viele Teams gleichzeitig am selben Block arbeiten.
Dienste: kleine Programme mit je einer Aufgabe
In einer Dienstarchitektur ist jede Aufgabe ein eigenes kleines Programm: Konten, Ausleihe, Mahnungen. Die Dienste sprechen über Schnittstellen.
Jedes Team kann seinen Dienst allein ändern und ausbauen. Dafür kostet der Betrieb mehr, weil viele Teile laufen und sich finden müssen.
Ereignisse: melden, ohne zu wissen, wer zuhört
In einer ereignisgesteuerten Architektur meldet ein Teil: Es ist etwas geschehen. Andere Teile, die zuhören, reagieren darauf.
Der Sender kennt die Empfänger nicht. Neue Empfänger lassen sich ergänzen, ohne ihn zu ändern. Das macht die Kopplung sehr lose.
Im Lab: Schichten und ein Ereignis
Das Lab selbst ist geschichtet: Das Terminal fragt die API, die API fragt die Datenbank.
Danach senden Sie mit notify ein Ereignis. Niemand hört zu, und es geschieht kein Fehler. So lose sind Sender und Empfänger gekoppelt.
psql das Passwort geben
export PGPASSWORD=shopHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Von vorn beginnen
psql -h db -U shop -c "drop table if exists geraete"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Tabelle geraete anlegen
psql -h db -U shop -c "create table geraete (id serial primary key, name text not null unique, art text not null)"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 Gerät eintragen
psql -h db -U shop -c "insert into geraete (name, art) values ('Notebook 1', 'Notebook')"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Der API sagen, dass sie neu schaut
psql -h db -U shop -c "notify pgrst, 'reload schema'"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die unterste Schicht fragen
psql -h db -U shop -At -c "select name from geraete"Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Dieselben Daten über die Schicht darüber
curl -s -w "\n" "http://api:3000/geraete?select=name"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 Ereignis senden
psql -h db -U shop -c "notify ausleihe, 'neues Notebook'"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 Beispiel: wann welcher Stil passt
| Stil | Passt gut bei | Kostet |
|---|---|---|
| Schichten | Einem Team und einem kleinen System | Wenig |
| Dienste | Mehreren Teams und getrenntem Ausbau | Mehr Betrieb |
| Ereignisse | Vielen Empfängern und späteren Erweiterungen | Schwerer nachzuverfolgen |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Ein häufiger Fehler
Warnung
Viele glauben, der modernste Stil sei immer der beste. Dienste und Ereignisse lösen Probleme, die ein kleines System nicht hat. Wählen Sie den einfachsten Stil, der Ihre Bedürfnisse erfüllt, und wechseln Sie erst, wenn ein Bedürfnis ihn sprengt.