Tengo un sitio web que recibe solicitudes de API cuando ocurre algo, procesa un poco y envía los datos a una base de datos en un servidor diferente. Si la solicitud de API a mi servidor falla, los datos se pierden. Si la solicitud que le hago al otro servidor (para almacenar los datos en la base de datos) falla, los datos se pierden.
Lo que soluciona este problema es una cola de mensajes. En lugar de escuchar solicitudes de API, escucho nuevos mensajes en la cola. Comienzo a procesar los datos cuando recibo el mensaje, y lo borro de la cola solo cuando he enviado con éxito mi salida a la base de datos. Si mi servidor falla o sucede algo malo, mi servidor puede reiniciarse (o incluso reemplazarse) y el mensaje sigue ahí, listo para ser reprocesado.
Considere un sitio que acepte imágenes para usar como avatares de perfil. Desea cambiar su tamaño a miniaturas. Almacenaría el original en un archivo y luego agregaría la ruta al archivo a la cola. Un proceso separado (o incluso un servidor) puede leer desde la cola y procesar cada imagen. ¡No más imágenes rotas cuando el servidor de procesamiento de imágenes tiene problemas!
- Cómo vincular archivos PHP y SQL existentes para crear una página web
- Cómo aprender cómo se diseñó el framework Ruby on Rails
- Me mudaré a los EE. UU., ¿Cómo debo prepararme para conseguir un trabajo como programador / desarrollador?
- Soy un diseño gráfico interesado en aprender código. ¿Sería el desarrollo web el mejor lugar para comenzar?
- Cómo crear un sitio web rápido de WordPress