Neues in API7 Enterprise 3.2.12: Unterstützung für Stream Routes

Zhihuang Lin

Zhihuang Lin

May 24, 2024

Products

In API7 Enterprise 3.2.12 wurde die Unterstützung für Stream-Routen eingeführt, was das Proxying und Load Balancing von TCP/UDP-Protokollverkehr ermöglicht.

Durch die Konfiguration von Stream-Routen kann API7 Enterprise Anfragen für Dienste wie MySQL und MongoDB basierend auf dem TCP-Protokoll proxen. Es kann auch Anwendungen wie Redis proxen, die entweder mit dem TCP- oder UDP-Protokoll konfiguriert werden können. Dies ermöglicht eine effektive Verwaltung und Optimierung des TCP/UDP-Netzwerkverkehrs.

Wie verwendet man Stream-Routen in API7 Enterprise?

Hinzufügen eines Stream-Dienstes

Beim manuellen Hinzufügen eines Dienstes wurde eine Option zur Auswahl des Diensttyps hinzugefügt, die zwei Typen unterstützt: HTTP und Stream, die jeweils Layer-7-Proxy und Layer-4-Proxy darstellen. Wenn der Diensttyp als Stream ausgewählt wird, kann das Upstream-Schema entweder TCP oder UDP gewählt werden. Es ist wichtig zu beachten, dass der Diensttyp nach der Auswahl nicht mehr geändert werden kann, daher sollte sichergestellt werden, dass der richtige Diensttyp ausgewählt wird.

Stream-Diensttyp hinzufügen

Hinzufügen von Stream-Routen

Nach erfolgreicher Erstellung eines Stream-Typ-Dienstes wird man zur Dienstdetailseite weitergeleitet. Der nächste Schritt besteht darin, Routen hinzuzufügen, indem auf die Schaltfläche Stream-Route hinzufügen geklickt wird.

Stream-Routen für Dienste hinzufügen

Füllen Sie das Formular mit dem Routennamen, der Beschreibung und den relevanten Routenkonfigurationen aus. Hier konfigurieren wir eine Route für das Proxying des MySQL-Dienstes.

Details zum Hinzufügen von Stream-Routen

Im Vergleich zu regulären HTTP-Routenkonfigurationen gibt es bei Stream-Routen drei verschiedene Konfigurationsoptionen.

  • Server-Adresse: Dies ist die Adresse, an der der Gateway-Server Stream-Routen-Verbindungen empfängt und dient als Eingangspunkt für den Stream-Routen-Verkehr in das Gateway. Wenn Clients versuchen, Verbindungen herzustellen, senden sie Anfragen an diese Adresse, und das Gateway leitet oder verarbeitet diese Anfragen basierend auf den vordefinierten Routing-Regeln.

  • Server-Port: Er wird verwendet, um den Port anzugeben, auf dem der Gateway-Server den Verkehr abhört.

  • Remote-Adresse: Dies ist die Client-Adresse, die die Anfrage initiiert. Nur Anfragen, die von Client-Adressen gesendet werden, die mit der Remote-Adresse übereinstimmen, können weitergeleitet werden, wodurch die Verkehrsverwaltung für bestimmte Clients ermöglicht wird.

Nach erfolgreicher Erstellung der Route können wir die neu hinzugefügte MySQL-Route in der Liste sehen.

Hinzugefügte MySQL-Routen

Konfigurieren von Upstream-Knoten und Veröffentlichen des Dienstes

Als nächstes werden wir den Dienst in der Gateway-Gruppe veröffentlichen und einen Upstream-Knoten hinzufügen, der dem MySQL-Dienst entspricht.

Knoten für MySQL-Dienst hinzufügen

Nach der Veröffentlichung des Dienstes wird diese Route die Anfrage verarbeiten und an den Upstream-MySQL-Dienst weiterleiten, wenn der Gateway-Server unter 127.0.0.10 und Port 9101 eine Anfrage empfängt.

Zusätzlich zur grundlegenden Anfrageweiterleitungsfunktion kann die Leistung und Sicherheit des Dienstes nach der Veröffentlichung durch eine Reihe von Konfigurationen verbessert werden. Beispielsweise können Lastverteilungsstrategien für Stream-Routen konfiguriert werden, um sicherzustellen, dass der Verkehr gleichmäßig auf mehrere Upstream-MySQL-Server verteilt wird, wodurch die Skalierbarkeit und Fehlertoleranz des Systems verbessert wird.

Darüber hinaus können Health-Check-Mechanismen eingerichtet werden, um den Status der Upstream-Server regelmäßig zu überwachen und sicherzustellen, dass nur gesunde Server Anfragen empfangen und weiterleiten, wodurch Dienstunterbrechungen aufgrund von Serverausfällen vermieden werden.

Unterstützte Plugins

Derzeit werden vier Plugins für Stream-Routen unterstützt:

  1. ip-restriction: Bietet IP-Zugriffskontrollfunktionen.

  2. limit-conn: Dieses Plugin kann die Anzahl der gleichzeitigen Anfragen von Clients an einen einzelnen Dienst beschränken.

  3. prometheus: Bietet Systemüberwachungs- und Alarmierungsfunktionen für Stream-Routen.

  4. syslog: Zeichnet Systemprotokolle auf und sendet sie.

Diese vier Plugins verbessern gemeinsam die Sicherheit, Stabilität, Überwachung und Wartbarkeit von Stream-Routen.

Fazit

Die Stream-Routen in API7 Enterprise 3.2.12 bieten den Benutzern eine robustere und flexiblere Verwaltung des TCP/UDP-Protokollverkehrs, was zur Verbesserung der Zuverlässigkeit und Skalierbarkeit von Anwendungen beiträgt. Es bringt eine verbesserte Netzwerkverkehrsverwaltung, eine höhere Systemzuverlässigkeit und Betriebseffizienz sowie eine überlegene Geschäftsanpassungsfähigkeit für Unternehmensbenutzer mit sich, was es wertvoll für die Unterstützung des Betriebs kritischer Unternehmensanwendungen macht.

Tags: