Adressierbarkeit von Microservices und die Dienstregistrierung
Tipp
Diese Inhalte sind ein Auszug aus dem eBook „.NET Microservices Architecture for Containerized .NET Applications“, verfügbar unter .NET Docs oder als kostenlos herunterladbare PDF-Datei, die offline gelesen werden kann.
Jeder Microservice hat einen eindeutigen Namen (URL), der zum Auflösen des Speicherorts verwendet wird. Ihr Microservice muss adressierbar sein, unabhängig davon, wo er ausgeführt wird. Wenn Sie darüber nachdenken müssen, welcher Computer einen bestimmten Microservice ausführt, können schnell Fehler auftreten. Ähnlich wie DNS eine URL zu einem bestimmten Computer auflöst, benötigt Ihr Microservice einen eindeutigen Namen, damit seine aktuelle Position ermittelt werden kann. Microservices benötigen adressierbare Namen, um von der Infrastruktur unabhängig zu sein, auf der sie ausgeführt werden. Da eine Dienstregistrierung vorhanden sein muss, impliziert dieser Ansatz, dass eine Interaktion zwischen der Bereitstellung und der Erkennung des Diensts besteht. In gleicher Weise muss der Registrierungsdienst angeben können, wo der Dienst momentan ausgeführt wird, wenn bei einem Computer ein Fehler auftritt.
Das Muster der Dienstregistrierung ist ein Schlüsselteil der Diensterkennung. Die Registrierung ist eine Datenbank, die Netzwerkadressen und 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. Allerdings veralten diese Informationen, und Clients können die Dienstinstanzen nicht mehr ermitteln. Folglich besteht eine Dienstregistrierung aus einem Servercluster, der ein Replikationsprotokoll verwendet, um die Konsistenz zu gewährleisten.
In manchen Bereitstellungsumgebungen für Microservices (auch Cluster genannt, wie in einem späteren Abschnitt erklärt wird) ist die Diensterkennung integriert. So kann beispielsweise eine Azure Kubernetes Service-Umgebung (AKS) die Registrierung und die Registrierungsaufhebung von Dienstinstanzen ausführen. Die Umgebung führt außerdem einen Proxy auf jedem Clusterhost aus, der die Rolle eines serverseitigen Suchrouters übernimmt.
Zusätzliche Ressourcen
Chris Richardson. Pattern: Service registry (Muster: Dienstregistrierung)
https://microservices.io/patterns/service-registry.htmlAuth0. The Service Registry (Dienstregistrierung)
https://auth0.com/blog/an-introduction-to-microservices-part-3-the-service-registry/Gabriel Schenker. Dienstermittlung
https://lostechies.com/gabrielschenker/2016/01/27/service-discovery/