Fortgeschrittene Stabilitäts- und Fehlertoleranzmechanismen von Apache APISIX
January 20, 2024
Bei der Auswahl von API-Gateways sind Stabilität und Fehlertoleranz neben Funktionalität, Skalierbarkeit und Sicherheit entscheidende Faktoren. Bei der Entwicklung von Apache APISIX im Jahr 2019 wurden Stabilität und Fehlertoleranz als wesentlich erachtet, da es bei der Verarbeitung von internen und externen Verkehrsanfragen zu erheblichen Produktionsvorfällen kommen kann.
Um ein umfassendes Verständnis für Forscher zu bieten, wollen wir uns die wichtigsten Stabilitäts- und Fehlertoleranzfunktionen von Apache APISIX genauer ansehen.
Trennung von Kontroll- und Datenebene
Apache APISIX verwendet eine getrennte Architektur mit einer Kontrollebene (d.h. etcd, Admin API) und einer zustandslosen Datenebene (d.h. das API-Gateway kann bei Bedarf skaliert werden). Es gibt keine Abhängigkeit zwischen ihnen. Das bedeutet, dass selbst wenn die Kontrollebene Anomalien aufweist (wie Netzwerkunterbrechungen oder abnormale Beendigungen), die Datenebene weiterhin normal arbeiten und neue Verkehrsanfragen verarbeiten kann. Diese Trennung gewährleistet die hohe Verfügbarkeit von APISIX.
Daten-Synchronisationsmechanismus
Es existiert ein effizienter Daten-Synchronisationsmechanismus zwischen der Datenebene und der Kontrollebene. Die Datenebene fungiert als etcd Watcher und wird von etcd aktiv über Datenänderungen benachrichtigt. Sie aktualisiert ihre Konfiguration und Regeln entsprechend. Wenn ein Administrator also eine Konfiguration über die Admin API in etcd schreibt, erhält die Datenebene schnell Änderungsbenachrichtigungen und speichert die Konfiguration im Speicher. Dieser Mechanismus vermeidet die Notwendigkeit, die Konfiguration bei jeder eingehenden Anfrage von etcd abzurufen, und reduziert so die Systemlast. Es ist jedoch wichtig zu beachten, dass bei Anomalien der Kontrollebene das Neustarten von Datenebenen-Instanzen vermieden werden sollte, um den Verlust von Speicherkonfigurationen zu verhindern.
Anomalien der Kontrollebene
Unterbrechung der Netzwerkkommunikation
Im Falle einer Netzwerkunterbrechung zwischen dem API-Gateway und etcd erreichen Konfigurationen, die über die Admin API in etcd geschrieben werden, das Gateway nicht. Das Gateway verwendet jedoch weiterhin die zuvor gespeicherte Speicherkonfiguration, um neue Verkehrsanfragen zu verarbeiten, und verhindert so abnormale Beendigungen aufgrund des Verbindungsverlusts zu etcd. Sobald die Verbindung zwischen Gateway und etcd wiederhergestellt ist, erhält das Gateway die neueste Konfiguration und arbeitet wieder normal.
Abnormaler Absturz von etcd
Wenn etcd abnormal abstürzt, können Administratoren keine Konfigurationen über die Admin API schreiben. Dies beeinträchtigt jedoch nicht den Betrieb des Gateways, das weiterhin arbeitet und Verkehrsanfragen verarbeitet. In diesem Szenario ähnelt das Verhalten des Gateways der Situation nach einer Netzwerkunterbrechung.
Multi-Node-Bereitstellung und Lastausgleich
Um hohe Verfügbarkeit zu gewährleisten, wird empfohlen, mehrere Gateway-Instanzen bereitzustellen und einen Lastenausgleich (wie AWS Load Balancer oder F5) zwischen ihnen einzurichten. Diese Lastenausgleicher verfügen über Health-Check-Mechanismen, um den Gesundheitszustand der Gateway-Instanzen zu überprüfen. Wenn eine Gateway-Instanz ausfällt, entfernt der Lastenausgleich sie umgehend aus dem Dienst und kann neue Gateway-Knoten hinzufügen. Diese Multi-Node-Bereitstellung und Lastenausgleichsstrategie hilft, Geschäftsunterbrechungen durch den Ausfall eines einzelnen Knotens zu verhindern.
Fazit
Zusammenfassend zeigt Apache APISIX eine herausragende Stabilität und Fehlertoleranz, wenn die Kontroll- und Datenebene getrennt sind. Seine getrennte Architektur, der effiziente Daten-Synchronisationsmechanismus und die Multi-Node-Bereitstellungsstrategie gewährleisten eine hohe Verfügbarkeit auch in Ausnahmesituationen. Das Design von Apache APISIX berücksichtigt verschiedene Netzwerk- und Komponentenanomalien, was es bei der Verarbeitung von unternehmensweiten Verkehrsanfragen besonders gut abschneiden lässt.