No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Gestión de microservicios con PM2

22/29
Recursos

Aportes 13

Preguntas 3

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Al iniciar un proceso en pm2 se le puede asignar un nombre usando el flag --name.

pm2 start api/index.js --name api-principal
pm2 start mysql/index.js --name api-mysql
pm2 start post/index.js --name api-post

Revisando la documentación de pm2 me encontré que se puede crear un archivo de configuración de todas las apis y poderlas levantar o reiniciar:
primero creamos un archivo ecosystem.config.js

module.exports = {
  apps : [
    {
      name: 'API-MAIN',
      script: 'src/api/index.js',
      instances: 2,
      autorestart: true,
      watch: false,
      max_memory_restart: '2G',
      env: {
        NODE_ENV: 'development'
      },
      env_production: {
        NODE_ENV: 'production'
      }
    },
    {
      name: 'API-MYSQL',
      script: 'src/microservices/mysql/index.js',
      instances: 2,
      autorestart: true,
      watch: false,
      max_memory_restart: '2G',
      env: {
        NODE_ENV: 'development'
      },
      env_production: {
        NODE_ENV: 'production'
      }
    },
    {
      name: 'API-POST',
      script: 'src/microservices/posts/index.js',
      instances: 2,
      autorestart: true,
      watch: false,
      max_memory_restart: '2G',
      env: {
        NODE_ENV: 'development'
      },
      env_production: {
        NODE_ENV: 'production'
      }
    }
  ],
};

Para iniciar los servicios con

pm2 start ecosystem.config.js --env [development|production]```

Me aparecen un montón de líneas de comando en la pantalla que me interrumpen y me impiden escribir.

Cuando le doy a pm2 start…

Tengo una duda, no me había percatado pero si corro los servicios desde pm2, varios de estos truenan al hacer la petición a la api (store) pero si los corro por separado desde la terminal, no ocurre ningun problema. ¿A qué se debe esto profesor?
[](

Con el ecosystem.config.js que podemos generar con el comando pm2 ecosystem podemos configurar las variables de entorno que gestionamos en el archivo config.js del proyecto.

Podemos declarar sí son variables para usar en desarrollo ó en producción

    {
      name: "API",
      script: "src/api/index.ts",
      watch: true,
      env_production: {
        API_PORT: 3000,
      },
env_development: {
        API_PORT: 8080,
      },

Luego para cargar las variables usamos pm2 start ecosystem.config.js --env [variable]

DIOS, QUE CLASE TAN INCREIBLE!

Excelente información sobre PM2

Muy interesante!! Me gustó mucho para poder gestionar en ambientes tipo PRD y tiene varias funcionalidades más de las que vimos en la clase

last V4.4 pm2

Muy bueno, ya lo habia usado pm2, tiene una consola grafica, incluso la podemos monitorear de forma remota, pero esta plataforma es de pago 😦

Un profe decía que node gestionara los procesos de node como que no era tan bueno, que sería mejor buscar alternativas más interesantes como systemd de linux, la cuestión es cómo se aplicaría para los microservicios.

Magistraaalll!!

Una muy buena herramienta para no volvernos locos con la gestion de los servicios.