Antimodèle: conserver les proxys d'API NodeJS inutilisés déployés

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

L'une des fonctionnalités uniques et utiles d'Apigee Edge est sa capacité à encapsuler une application NodeJS dans un proxy d'API. Cela permet aux développeurs de créer des applications côté serveur basées sur des événements à l'aide de Edge.

Antimodèle

Le déploiement des proxys d'API est le processus qui consiste à les rendre disponibles pour répondre aux requêtes d'API. Chacun des proxys d'API déployés est chargé dans la mémoire d'exécution du processeur de messages pour pouvoir diffuser les requêtes API pour le proxy d'API spécifique. Par conséquent, l'utilisation de la mémoire d'exécution augmente avec l'augmentation du nombre de proxys d'API déployés. Le fait de laisser des proxys d'API inutilisés déployés peut entraîner une utilisation inutile de la mémoire d'exécution.

Dans le cas des proxys d'API NodeJS, la question est plus complexe.

La plate-forme lance une "application Node" pour chaque proxy d'API NodeJS déployé. Une application de nœud s'apparente à une instance de serveur de nœud autonome dans le processus JVM du processeur de messages.

En effet, pour chaque proxy d'API NodeJS déployé, Edge lance chacun un serveur de nœuds afin de traiter les requêtes pour les proxys correspondants. Si le même proxy d'API NodeJS est déployé dans plusieurs environnements, une application de nœud correspondante est lancée pour chaque environnement. Lorsque de nombreux proxys d'API NodeJS non utilisés sont déployés, plusieurs applications de nœud sont lancées. Les proxys NodeJS inutilisés sont transformés en applications de nœud inactives, qui consomment de la mémoire et affectent les temps de démarrage du processus d'application.

Proxys utilisés Proxys non utilisés
# proxys Nombre d'environnements déployés # application de nœuds lancée # proxys Nombre d'environnements déployés # applications de nœud lancées
10 dev, test, prod (3) 10x3=30 12 dev, test, prod (3) 12x3=36

Dans l'illustration ci-dessus, 36 applications de nœuds inutilisées sont lancées, ce qui utilise la mémoire système et a un effet négatif sur les temps de démarrage du processus.

Impact

  • Utilisation élevée de la mémoire et effet en cascade sur la capacité de l'application à traiter d'autres requêtes
  • Impact probable sur les performances sur les proxys d'API qui diffusent réellement le trafic

Bonne pratique

  • Annuler le déploiement des proxys d'API inutilisés
  • Utilisez le tableau de bord Analytics Proxy Performance pour déterminer quels proxys ne diffusent pas le trafic. Annulez le déploiement de ceux dont vous n'avez pas besoin.

Complément d'informations