Anti-Muster: Nicht verwendete NodeJS API-Proxys bereitgestellt lassen

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Eines der einzigartigen und nützlichen Merkmale von Apigee Edge ist die Möglichkeit, eine NodeJS-Anwendung in einen API-Proxy zu verpacken. Dadurch können Entwickler mit Edge ereignisgesteuerte serverseitige Anwendungen erstellen.

Anti-Pattern

Bei der Bereitstellung von API-Proxys werden diese für API-Anfragen verfügbar gemacht. Jeder der bereitgestellten API-Proxys wird in den Laufzeitspeicher von Message Processor geladen, um die API-Anfragen für den jeweiligen API-Proxy verarbeiten zu können. Daher nimmt die Laufzeitarbeitsspeichernutzung mit der Anzahl der bereitgestellten API-Proxys zu. Wenn Sie ungenutzte API-Proxys bereitstellen, kann dies zu einer unnötigen Nutzung von Laufzeitarbeitsspeicher führen.

Bei NodeJS API-Proxys hat dies eine weitere Auswirkung.

Die Plattform startet eine „Knoten-App“ für jeden bereitgestellten NodeJS API-Proxy. Eine Knotenanwendung ähnelt einer eigenständigen Knotenserverinstanz im Message Processor-JVM-Prozess.

Tatsächlich startet Edge für jeden bereitgestellten NodeJS API-Proxy jeweils einen Knotenserver, um Anfragen für die entsprechenden Proxys zu verarbeiten. Wenn derselbe NodeJS API-Proxy in mehreren Umgebungen bereitgestellt wird, wird für jede Umgebung eine entsprechende Knotenanwendung gestartet. In Situationen, in denen viele bereitgestellte, aber nicht verwendete NodeJS API-Proxys vorhanden sind, werden mehrere Knotenanwendungen gestartet. Nicht verwendete NodeJS-Proxys werden in inaktive Knotenanwendungen umgewandelt, die Arbeitsspeicher belegen und die Startzeiten des Anwendungsprozesses beeinträchtigen.

Verwendete Proxys Nicht verwendete Proxys
# Proxys # bereitgestellte Umgebungen # Knoten-Apps gestartet # Proxys # bereitgestellte Umgebungen # Knoten-Apps gestartet
10 Entwicklung, Test, Produktion (3) 10x3=30 12 Entwicklung, Test, Produktion (3) 12x3=36

In der obigen Abbildung werden 36 nicht verwendete Knoten-Apps gestartet, die Systemspeicher verbrauchen und sich nachteilig auf die Startzeiten des Prozesses auswirken.

Auswirkungen

  • Hohe Arbeitsspeichernutzung und kaskadierende Auswirkung auf die Fähigkeit der Anwendung, weitere Anfragen zu verarbeiten
  • Mögliche Auswirkungen auf die Leistung der API-Proxys, die tatsächlich Traffic bereitstellen

Best Practice

  • Bereitstellung nicht verwendeter API-Proxys aufheben
  • Verwenden Sie das Analytics Proxy Performance-Dashboard, um festzustellen, welche Proxys keinen Traffic bereitstellen. Heben Sie die Bereitstellung der Proxys auf, die Sie nicht benötigen.

Weitere Informationen