Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu
Apigee X. info
Eines der einzigartigen und nützlichen Features von Apigee Edge ist die Möglichkeit, eine NodeJS-Anwendung in einen API-Proxy einzubinden. So können Entwickler ereignisgesteuerte serverseitige Anwendungen mit Edge erstellen.
Anti-Pattern
Bei der Bereitstellung von API-Proxys werden diese so konfiguriert, dass sie API-Anfragen verarbeiten können. Jeder der bereitgestellten API-Proxys wird in den Laufzeitspeicher des Nachrichtenprozessors geladen, um die API-Anfragen für den jeweiligen API-Proxy verarbeiten zu können. Daher steigt die Arbeitsspeichernutzung zur 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 Auswirkung.
Die Plattform startet für jeden bereitgestellten NodeJS-API-Proxy eine „Node-App“. Eine Node-App ähnelt einer eigenständigen Node-Serverinstanz im JVM-Prozess des Nachrichtenprozessors.
Für jeden bereitgestellten NodeJS-API-Proxy startet Edge also 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-App gestartet. In Situationen, in denen viele NodeJS-API-Proxys bereitgestellt, aber nicht verwendet werden, werden mehrere Node-Apps gestartet. Nicht verwendete NodeJS-Proxys führen zu inaktiven Node-Apps, die Arbeitsspeicher verbrauchen und sich auf die Startzeiten des Anwendungsprozesses auswirken.
| Verwendete Proxys | Nicht verwendete Proxys | ||||
|---|---|---|---|---|---|
| # Proxys | # Bereitgestellte Umgebungen | # Node-Apps gestartet | # Proxys | # Bereitgestellte Umgebungen | # Node-Apps gestartet |
| 10 | Entwicklung, Test, Produktion (3) | 10 × 3=30 | 12 | Entwicklung, Test, Produktion (3) | 12 × 3=36 |
In der Abbildung oben werden 36 nicht verwendete Node-Apps gestartet, die Systemspeicher belegen und sich negativ auf die Startzeiten des Prozesses auswirken.
Auswirkungen
- Hohe Arbeitsspeichernutzung und kaskadierende Auswirkungen auf die Fähigkeit der Anwendung, weitere Anfragen zu verarbeiten
- Wahrscheinliche Auswirkungen auf die Leistung der API-Proxys, die tatsächlich Traffic verarbeiten
Best Practice
- Bereitstellung aller nicht verwendeten API-Proxys aufheben
- Mit dem Analytics-Dashboard zur Proxy-Leistung ermitteln, welche Proxys keinen Traffic verarbeiten, und die Bereitstellung der nicht benötigten Proxys aufheben