Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
Una delle funzionalità uniche e utili di Apigee Edge è la possibilità di eseguire il wrapping di un'applicazione Node.js in un proxy API. In questo modo, gli sviluppatori possono creare applicazioni lato server basate su eventi utilizzando Edge.
Antipattern
Il deployment dei proxy API è il processo di renderli disponibili per gestire le richieste API. Ogni proxy API di cui è stato eseguito il deployment viene caricato nella memoria di runtime del Message Processor per poter gestire le richieste API per il proxy API specifico. Pertanto, l'utilizzo della memoria del runtime aumenta con l'aumento del numero di proxy API di cui è stato eseguito il deployment. Il mancato ritiro dei proxy API non utilizzati può causare un uso non necessario della memoria di runtime.
Nel caso dei proxy API NodeJS, c'è un'ulteriore implicazione.
La piattaforma avvia un'"app Node" per ogni proxy API Node.js di cui è stato eseguito il deployment. Un'app Node è simile a un'istanza del server Node autonoma nel processo JVM del Message Processor.
In effetti, per ogni proxy API NodeJS di cui è stato eseguito il deployment, Edge avvia un server Node per elaborare le richieste per i proxy corrispondenti. Se lo stesso proxy API NodeJS viene implementato in più ambienti, viene lanciata un'app Node corrispondente per ogni ambiente. Nelle situazioni in cui sono presenti molti proxy API NodeJS di cui è stato eseguito il deployment, ma che non vengono utilizzati, vengono avviate più app Node. I proxy NodeJS inutilizzati si traducono in app Node inattive che consumano memoria e influiscono sui tempi di avvio della procedura di applicazione.
Proxy utilizzati | Proxy inutilizzati | ||||
---|---|---|---|---|---|
# Proxies | # Deployed Environments | # nodeapps lanciate | # Proxies | # Deployed Environments | # Node apps Launched |
10 | dev, test, prod (3) | 10x3=30 | 12 | dev, test, prod (3) | 12x3=36 |
Nell'illustrazione sopra, vengono avviate 36 app di nodi inutilizzate, che utilizzano la memoria di sistema e hanno un effetto negativo sui tempi di avvio del processo.
Impatto
- Utilizzo elevato della memoria ed effetto a cascata sulla capacità dell'applicazione di elaborare ulteriori richieste
- Probabile impatto sulle prestazioni dei proxy API che effettivamente pubblicano il traffico
Best practice
- Annullare il deployment di eventuali proxy API inutilizzati
- Utilizza la dashboard Rendimento proxy di Analytics per determinare quali proxy non gestiscono il traffico e annulla il deployment di quelli che non ti servono.