Freigeben über


Adressierbarkeit von Microservices und die Dienstregistrierung

Tipp

Dieser Inhalt ist ein Auszug aus dem eBook .NET Microservices Architecture for Containerized .NET Applications, verfügbar auf .NET Docs oder als kostenlose herunterladbare PDF, die offline gelesen werden kann.

.NET Microservices-Architektur für containerisierte .NET-Anwendungen eBook-Cover-Thumbnail.

Jeder Microservice hat einen eindeutigen Namen (URL), der zum Auflösen des Speicherorts verwendet wird. Ihr Microservice muss unabhängig vom Ort der Ausführung adressierbar sein. Wenn Sie überlegen müssen, auf welchem Computer ein bestimmter Microservice ausgeführt wird, können die Dinge schnell schlecht werden. Auf die gleiche Weise, wie DNS eine URL zu einem bestimmten Computer auflösen kann, muss Ihr Microservice einen eindeutigen Namen haben, damit sein aktueller Speicherort auffindbar ist. Microservices benötigen adressierbare Namen, die sie unabhängig von der Infrastruktur machen, auf der sie ausgeführt werden. Dieser Ansatz impliziert, dass es eine Interaktion zwischen der Bereitstellung Ihres Diensts und der Ermittlung gibt, da es eine Dienstregistrierung geben muss. Wenn ein Computer fehlschlägt, muss der Registrierungsdienst in der Lage sein, anzugeben, wo der Dienst jetzt ausgeführt wird.

Das Dienstregistrierungsmuster ist ein wichtiger Bestandteil der Dienstermittlung. Das Register ist eine Datenbank, die die Netzwerkstandorte von Dienstinstanzen enthält. Eine Dienstregistrierung muss hochverfügbar und auf dem neuesten Stand sein. Clients könnten Netzwerkadressen zwischenspeichern, die sie von der Dienstregistrierung erhalten. Diese Informationen sind jedoch irgendwann veraltet, und Clients können keine Dienstinstanzen mehr ermitteln. Eine Dienstregistrierung besteht also aus einem Cluster von Servern, die ein Replikationsprotokoll verwenden, um Konsistenz zu gewährleisten.

In einigen Microservice-Bereitstellungsumgebungen (cluster genannt, die in einem späteren Abschnitt behandelt werden sollen), wird die Dienstermittlung integriert. Beispielsweise kann eine Azure Kubernetes Service (AKS)-Umgebung die Registrierung und Deregistrierung von Serviceinstanzen verarbeiten. Außerdem wird ein Proxy auf jedem Clusterhost ausgeführt, der die Rolle des serverseitigen Discovery-Routers spielt.

Weitere Ressourcen