© DrHitch/Shutterstock.com
Microservices-Architektur

5 Distribution-Patterns


Scalabilty, Composability und Resilience sind wesentliche Anforderungen an verteilte Systeme (Distribution Systems) und damit auch an eine Microservices Architecture.

Die Scalability und damit die Skalierung erfolgen horizontal (in Cloud-Umgebungen, in denen Microservices leben, haben wir es ausschließlich mit horizontaler Skalierung zu tun). Mit zunehmender Last werden zusätzliche Server und Container hochgefahren und neue Microservices-Instanzen bereitgestellt. Bei Lastabfall werden sie wieder heruntergefahren. Die Microservices-Instanzen haben somit keinen festen Ort, wie das bei der vertikalen Skalierung der Fall wäre. Der Ort, also die Adresse der Microservices, ist somit nicht bekannt. Es besteht die Forderung nach Ortstransparenz für den Client, der auf den Microservice zugreifen möchte.

Um der Anforderung der Composability, also der Kombinierbarkeit von Microservices zu einer Anwendung, gerecht zu werden, müssen Microservices in verteilten Systemen eindeutig identifizierbar sein. Weitere Services müssen die benötigten Microservices finden und anschließend verwenden können.

Eine weitere, wichtige Anforderung ist die Resilience, also die Fehlertoleranz in verteilten Systemen. Fallen Microservices aus oder können sie die geforderte Performance nicht mehr bereitstellen, darf nicht das gesamte verteilte System zusammenbrechen. Der Microservices-Client darf nicht wesentlich von den Fehlern beeinträchtigt werden.

Bei der Umsetzung der genannten Anforderungen helfen uns die Distribution-Patterns, die im Folgenden beschrieben werden.

5.1 Service Registry

Problem

Microservices-Architekturen stellen verteilte Systeme dar. Eine zentrale Anforderung in verteilten Systemen ist die Ortstransparenz. Ortstransparenz bedeutet, dass ein Microservices-Client nichts über den physikalischen Ort (Host, Adresse, Port) des Microservice wissen muss, den er verwenden möchte. Wie können wir den physikalischen Ort eines Microservice ermitteln und dem Microservices-Client bereitstellen?

Lösung

Die Lösung ist das Service-Registry-Pattern. Es stellt eine zentrale Instanz, die Service Registry bereit, die alle Microservices kennt und einem Microservices-Client auf Anfrage eine Microservices-Instanz bereitstellen kann (dies ist die Instanziierung eines Microservice). Die Service Registry ist ein Single Point of Failure, das heißt, fällt die Service Registry aus, dann können keine Microservices mehr bereitgestellt werden. Es ist daher darauf zu achten, dass die Service Regist...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang