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

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

Eine der einzigartigen und nützlichen Funktionen von Apigee Edge ist die Möglichkeit, eine NodeJS-Anwendung in einen API-Proxy einzubinden. So können Entwickler mit Edge ereignisgesteuerte serverseitige Anwendungen erstellen.

Anti-Pattern

Beim Bereitstellen von API-Proxys werden sie für die Beantwortung von API-Anfragen verfügbar gemacht. Jeder der bereitgestellten API-Proxys wird in den Laufzeitspeicher des Message Processors geladen, damit die API-Anfragen für den jeweiligen API-Proxy verarbeitet werden können. Daher steigt die Arbeitsspeichernutzung bei der Laufzeit mit der Anzahl der bereitgestellten API-Proxys. Wenn nicht verwendete API-Proxys bereitgestellt bleiben, kann dies zu einer unnötigen Nutzung des Laufzeitspeichers führen.

Bei NodeJS API-Proxys gibt es eine weitere Einschränkung.

Die Plattform startet für jeden bereitgestellten NodeJS API-Proxy eine „Node-Anwendung“. Eine Node-Anwendung ähnelt einer eigenständigen Node-Serverinstanz im JVM-Prozess des Message Processors.

Für jeden bereitgestellten NodeJS API-Proxy startet Edge einen Node-Server, 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 Node-Anwendung gestartet. Wenn viele bereitgestellte, aber nicht verwendete NodeJS API-Proxys vorhanden sind, werden mehrere Node-Anwendungen gestartet. Nicht verwendete NodeJS-Proxys führen zu inaktiven Node-Anwendungen, die Speicher verbrauchen und die Startzeiten des Anwendungsprozesses beeinträchtigen.

Verwendete Proxys Nicht verwendete Proxys
# Proxies # Deployed Environments # nodeapps Launched # Proxies # Deployed Environments # Node-Apps gestartet
10 dev, test, prod (3) 10 × 3=30 12 dev, test, prod (3) 12 × 3=36

In der Abbildung oben werden 36 nicht verwendete Node-Apps gestartet, was den Systemspeicher belegt und sich negativ auf die Startzeit des Prozesses auswirkt.

Auswirkungen

  • Hohe Arbeitsspeichernutzung und Kaskadeneffekt auf die Fähigkeit der Anwendung, weitere Anfragen zu verarbeiten
  • Wahrscheinliche Leistungsauswirkungen auf die API-Proxys, die tatsächlich Traffic verarbeiten

Best Practice

  • Bereitstellung nicht verwendeter API-Proxys aufheben
  • Im Analytics-Dashboard „Proxy-Leistung“ sehen Sie, welche Proxys keinen Traffic verarbeiten. Deaktivieren Sie die nicht benötigten.

Weitere Informationen