Integration von Service Discovery und Registration mit API7 Enterprise
June 13, 2024
Mit der weit verbreiteten Einführung der Microservices-Architektur werden die Beziehungen zwischen den Diensten immer komplexer. In diesem Kontext ist die Dienstentdeckung besonders wichtig, da sie es Diensten ermöglicht, sich dynamisch zu lokalisieren und miteinander zu interagieren.
API7 Enterprise, als eine funktionsreiche API-Management-Plattform, kann nahtlos mit Dienstentdeckungs-Registern integriert werden, um die automatische Erkennung und intelligente Weiterleitung von Upstream-Diensten zu ermöglichen.
Was ist Dienstentdeckung?
Dienstentdeckung ist ein Mechanismus zur automatischen Erkennung von Dienstinstanzen und deren Adressen innerhalb eines Netzwerks, sodass andere Dienste oder Clients sie finden und mit ihnen kommunizieren können. In modernen verteilten Systemen und Microservices-Architekturen ist die Dienstentdeckung eine entscheidende Komponente, da sie die dynamische Lokalisierung und Verbindung zu Diensten ermöglicht, ohne dass Dienstadressen hartcodiert oder Konfigurationen manuell aktualisiert werden müssen.
Die Funktionen der Dienstentdeckung
-
Dynamische Dienstlokalisierung: In der Microservices-Architektur können Dienstinstanzen dynamisch starten, stoppen, migrieren oder skaliert werden. Die Dienstentdeckung kann diese Änderungen automatisch verfolgen und sicherstellen, dass Clients immer verfügbare Dienstinstanzen finden.
-
Fehlertoleranz und Failover: Wenn eine Dienstinstanz ausfällt, kann die Dienstentdeckung deren Nichtverfügbarkeit erkennen und Clients anweisen, sich mit anderen gesunden Instanzen zu verbinden, wodurch Failover und hohe Verfügbarkeit ermöglicht werden.
-
Vereinfachte Konfiguration und Verwaltung: Durch die Dienstentdeckung müssen Entwickler die Netzwerkadressen jedes Dienstes nicht manuell konfigurieren und verwalten. Dies reduziert die Möglichkeit von Konfigurationsfehlern und vereinfacht die Bereitstellung und Verwaltung von Diensten.
Dienstentdeckung in API7 Enterprise
Die Dienstentdeckung wird oft in Verbindung mit einem Lastenausgleich oder API-Gateway verwendet, um sicherzustellen, dass Anfragen gleichmäßig auf mehrere Dienstinstanzen verteilt werden, wodurch der Durchsatz und die Antwortzeit des Systems verbessert werden. In verteilten Systemen können Dienstinstanzen aus verschiedenen Gründen nicht verfügbar werden, und der Dienstentdeckungsmechanismus kann diese Probleme schnell identifizieren und Anfragen über den Lastenausgleich an andere gesunde Dienstinstanzen weiterleiten, wodurch die hohe Verfügbarkeit der Dienste sichergestellt wird.
In API7 Enterprise erweitert das Konzept des "Upstream" diese Flexibilität weiter. Durch die Konfiguration des Upstream als Dienstregister kann das API-Gateway die Liste der Backend-Dienstinstanzen dynamisch abrufen und die Anfrageverteilungsstrategie nach Bedarf anpassen. Dies bedeutet, dass selbst wenn sich die Anzahl oder der Zustand der Dienstinstanzen ändert, das API-Gateway schnell anpassen kann, ohne dass manuelle Konfigurationsaktualisierungen oder Dienstneustarts erforderlich sind.
Die Zusammenarbeit zwischen Dienstentdeckung und API-Gateway bietet der Microservices-Architektur leistungsstarke dynamische Dienstverwaltungs- und Traffic-Control-Fähigkeiten. API7 Enterprise hat diese Funktion weiter verbessert und erweitert, sodass das System flexibler und effizienter auf verschiedene komplexe Szenarien und Anforderungen reagieren kann. Darüber hinaus hat die weit verbreitete Einführung von Cloud-Native- und Containerisierungstechnologien die Bereitstellung und Skalierung von Dienstinstanzen einfacher und schneller gemacht.
Wie konfiguriert man die Dienstentdeckung in API7 Enterprise?
Hinzufügen von Dienstregistern
In der Gateway-Gruppe gehen Sie zur Seite des Dienstregisters, klicken Sie auf die Schaltfläche "Dienstregisterverbindung hinzufügen", und Sie sehen das Verbindungsformular.

Im Formular müssen wir die grundlegenden Informationen und relevanten Verbindungskonfigurationen für das Dienstregister ausfüllen. Derzeit unterstützt API7 Enterprise die Integration von Kubernetes- und Nacos-Dienstregistern. Hier verwenden wir Nacos als Beispiel. Wählen Sie "Nacos" als Entdeckungstyp und geben Sie dann an, wie API7 Enterprise das Token zur Authentifizierung erhält, was über Konto/Passwort, Zugriffsschlüssel und Geheimschlüssel oder durch direkte Eingabe des Token-Werts erfolgen kann.

Zusätzlich zu den grundlegenden Authentifizierungskonfigurationen bietet API7 Enterprise auch feinere Konfigurationsoptionen, wie z.B. Verbindungstimeout und Lese-/Schreibtimeout. Diese Konfigurationen können basierend auf den tatsächlichen Anforderungen flexibel angepasst werden, wodurch lang anstehende Anfragen aufgrund instabiler Netzwerkverbindungen effektiv vermieden und die ineffiziente Nutzung von Systemressourcen reduziert wird.
Nach der Erstellung des Dienstregisters erscheint der neue Verbindungseintrag sofort in der Liste, aber der Verbindungsstatus kann erst nach der Überprüfung durch das System als gesund markiert werden. Über diesen Verbindungseintrag können Benutzer bequem den Dienstentdeckungsstatus und die relevanten Konfigurationen des Dienstregisters überprüfen.
Konfigurieren der Dienstentdeckung im Upstream
Das Dienstregister ist eine Ressource, die zur Gateway-Gruppe gehört. In der Gateway-Gruppe, in der das Dienstregister erstellt wurde, kann jeder Dienst, der an diese Gateway-Gruppe veröffentlicht wird, die Konfiguration dieses Dienstregisters verwenden. Wir können den Upstream während des Dienstveröffentlichungsprozesses oder bei einem bereits veröffentlichten Dienst konfigurieren.
Wählen Sie eine Dienstvorlage, veröffentlichen Sie sie in der Gateway-Gruppe, die gerade das Dienstregister hinzugefügt hat, wählen Sie die Dienstentdeckung als Upstream, dann wählen Sie das Nacos-Dienstregister, das wir gerade erstellt haben, und wählen Sie den spezifischen Namespace, die Gruppe und die Instanz.
Nach der Veröffentlichung des Dienstes können Sie das aktuell konfigurierte Dienstregister auf der Upstream-Seite der Dienstdetails anzeigen und die Dienstentdeckungskonfiguration jederzeit ändern.
Verknüpfte Dienste anzeigen, Verbindungskonfigurationen aktualisieren und löschen
In der Liste der Dienstregister können Sie über das "Mehr"-Menü auf der rechten Seite bequem die Verbindungskonfigurationen verwalten, den Verbindungsverlauf anzeigen, die Nutzung des Dienstes verfolgen oder nicht mehr benötigte Verbindungskonfigurationen löschen.

Die "Verknüpften Dienste" zeigen deutlich an, welche Dienste ihre Dienstentdeckungskonfigurationen geändert haben, sodass wir die potenziellen Auswirkungen bewerten können, bevor wir Konfigurationsänderungen vornehmen, und so Betriebsrisiken effektiv vermeiden.

Bitte beachten Sie, dass die Aktualisierung der Verbindungskonfigurationen des Dienstregisters alle Upstream-Dienste beeinflusst, die dieses Register verwenden. Wenn bereits Upstream-Dienste vorhanden sind, die es verwenden, können Sie den Entdeckungstyp des Registers nicht ändern oder die Verbindung direkt löschen. Sie müssen die Upstream-Dienstkonfigurationen manuell anpassen, um andere Register oder Knoten zu verwenden, bevor Sie den Löschvorgang durchführen.

Fazit
Wir haben das detaillierte Konzept der Dienstentdeckung, ihre Rolle und ihre Anwendung in API7 Enterprise durchlaufen. Durch die Dienstentdeckung kann die Microservices-Architektur Dienste dynamisch verwalten und aufrufen, wodurch die Flexibilität und Verfügbarkeit des Systems erheblich verbessert wird.
Da sich die Microservices-Architektur weiterentwickelt, wird die Bedeutung der Dienstentdeckung immer deutlicher. Wir erwarten, dass sich die Dienstentdeckung in Zukunft mehr auf Intelligenz, Automatisierung und Fehlertoleranz konzentrieren wird.
API7 Enterprise wird die Integration mit weiteren Arten von Dienstregistern erforschen und Health Checks kombinieren, um eine stärkere Hochverfügbarkeit zu erreichen und Unternehmen dabei zu helfen, robustere und effizientere Microservices-Architekturen aufzubauen.