Antipatrón: Deja implementados los proxies de la API de NodeJS sin usar

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Una de las características únicas y útiles de Apigee Edge es la capacidad de unir una aplicación de Node.js en un proxy de API. Esto permite a los desarrolladores crear aplicaciones del servidor controladas por eventos con Edge.

Antipatrón

La implementación de proxies de API es el proceso de ponerlos a disposición para entregar solicitudes a la API. Cada uno de los proxies de API implementados se carga en la memoria del entorno de ejecución de Message Processor para poder entregar las solicitudes a la API del proxy de API específico. Por lo tanto, el uso de memoria del entorno de ejecución aumenta con el aumento de la cantidad de proxies de API implementados. Si dejas implementados los proxies de API sin usar, es posible que se genere un uso innecesario de la memoria del tiempo de ejecución.

En el caso de los proxies de API de Node.js, hay otra implicación.

La plataforma lanza una “app de Node” para cada proxy de API de NodeJS implementado. Una app de Node es similar a una instancia de servidor de nodos independiente en el proceso de JVM de Message Processor.

De hecho, por cada proxy de API de NodeJS implementado, Edge inicia un servidor de nodos cada uno a fin de procesar solicitudes para los proxies correspondientes. Si el mismo proxy de API de NodeJS se implementa en varios entornos, se inicia una app de nodo correspondiente para cada entorno. En situaciones en las que hay muchos proxies de API de NodeJS implementados, pero sin usar, se inician varias apps de Node. Los proxies de NodeJS no utilizados se traducen en apps de Node inactivas que consumen memoria y afectan los tiempos de inicio del proceso de la aplicación.

Proxies usados Proxies sin usar
Cantidad de proxies # de entornos implementados Se iniciaron # apps de nodo Cantidad de proxies # de entornos implementados Se inició # app de nodo
10 dev, prueba, producción (3) 10 × 3=30 12 dev, prueba, producción (3) 12 × 3=36

En la ilustración anterior, se inician 36 apps de Node que no se usan, lo que consume memoria del sistema y tiene un efecto adverso en los tiempos de inicio del proceso.

Impacto

  • Uso elevado de memoria y efecto en cascada en la capacidad de la aplicación para procesar más solicitudes
  • Impacto probable en el rendimiento de los proxies de API que realmente entregan tráfico

Práctica recomendada

  • Anular la implementación de los proxies de API sin usar
  • Usa el panel de rendimiento del proxy de Analytics para determinar qué proxies no entregan tráfico y anula la implementación de aquellos que no necesites.

Lecturas adicionales