Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

407
Vistas
AWS Beanstalk: capa de base de datos compartida entre el trabajador y el servidor web

Estoy creando una aplicación web usando NodeJS. Implementé la aplicación en el servidor web de AWS beanstalk y desasocié algunas tareas pesadas. E implementé las tareas pesadas en diferentes trabajadores de AWS beanstalk. El servidor web principal está ejecutando el trabajador con SQS (cola de AWS).

El servidor web principal tiene una gran capa de base de datos para conectarse, obtener y guardar en la base de datos. Los trabajadores necesitan algunas acciones de base de datos, cada tipo de trabajador necesita acciones diferentes que ya se implementaron en la capa de base de datos del servidor web principal.

Así que estoy tratando de encontrar una manera de usar la capa de base de datos del servidor web sin duplicarla en cada tipo de trabajador (eso es lo que estoy haciendo ahora).

Lo que pensé es desacoplar la capa de base de datos de la aplicación principal e implementarla en un servidor web, pero parece un desperdicio porque no necesito escuchar solicitudes en la capa de base de datos todo el tiempo, necesito algunas acciones bajo demanda.

Adjunto una foto de como queda:

  • número 1 el servidor principal (con capa de base de datos completa)
  • número 2 la cola
  • número 3 los trabajadores. (con acciones de db duplicadas)

Diagrama

¿Hay alguna buena solución para eso?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Simplemente use la integración RDS nativa con su entorno Beanstalk: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.managing.db.html

over 4 years ago · Santiago Trujillo Denunciar

0

¿Cuántas operaciones de guardar/cargar está haciendo de los trabajadores? ¿Cuántos trabajadores están corriendo al mismo tiempo? Creo que es difícil sugerir una solución única sin comprender cuántos trabajadores hay allí y cuántos datos se guardarán.

En general, puedo pensar en múltiples soluciones en realidad:

  1. Puede abrir la API en el servidor web, por lo que una vez que el trabajador finalice, llamará al servidor web. Si tiene muchos trabajadores, no funcionará, por lo que es posible que necesite trabajadores intermedios (llamémoslo el "trabajador guardado"), por lo que los trabajadores actuales pondrán en cola el "trabajo guardado", luego el "trabajador guardado" llamará al API del servidor web, esto garantizará que el servidor web no se sobrecargue con operaciones de guardado.

  2. Puede crear una instancia duplicada del servidor web (llamémoslo "servidor web del trabajador") que es para guardar los resultados de los trabajadores, por lo que los trabajadores enviarán el resultado a un nuevo SQS, en este "servidor web del trabajador" estará escuchando a las solicitudes de guardado en el SQS. Puede controlar en qué modo funcionará el servidor web configurando la variable de entorno, por ejemplo.

  3. Tal vez pueda extraer la capa de base de datos en un paquete o biblioteca que se usa en el servidor web más los trabajadores también, pero debe tener cuidado de no abrir muchas conexiones en paralelo a la base de datos o realizar una gran cantidad de db operaciones al mismo tiempo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda