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
Introducción al proyecto del curso y su arquitectura
Arquitectura de un backend complejo
Estructuras de datos para nuestro proyecto
Creando la estructura principal
Estructura inicial del proyecto: API y rutas
Aislar el código de la base de datos
Rutas para usuarios
Documentación de nuestra API
Autenticación basada en tokens
JWT: Gestión de acceso
Autenticación: registro
Autenticación: login
Autenticación: cifrar contraseñas para evitar problemas de seguridad
Autenticación: gestión de permisos
Comprobar verificación con token
Gestión avanzada de errores: Throw
Almacenando datos: MySql
Base de datos real: MySQL
Completando la base de datos
Relacionando entidades: follow
Posts y likes
Microservicios en Node
Microservicios: pros y contras
Separando la base de datos a un microservicio
Conectando con nuestro microservicio de datos
Separando los posts a un microservicio
Gestión de microservicios con PM2
Puesta en producción serverless
Microservicios en Zeit Now, serverless y seguridad
Variables de entorno en Now y despliegue local
Cacheando nuestra aplicación
Caché como un microservicio. Redis
Conectando el microservicio a Redis
Conectar la API al caché
Puesta en producción en virtual machine
Desplegando los servicios de Node
Nginx como proxy inverso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Carlos Hernández
Aportes 14
Preguntas 3
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]```
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?
[](
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…
DIOS, QUE CLASE TAN INCREIBLE!
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]
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.
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 😦
Magistraaalll!!
Una muy buena herramienta para no volvernos locos con la gestion de los servicios.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?