es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Fastify-http-proxy no puede obtener rutas dinámicas.

Tengo un servidor fastify que apunta a dos servidores fastify de “backend” y me gustaría generar un número aleatorio que se use para decidir a qué backend encaminar. Actualmente, solo funciona la primera vez y no puedo anular el upstream después.

El servidor registra el módulo “fastify-http-proxy” con los siguientes parámetros:

  • upstream: vacío
  • replyOptions: {
    • getUpstream: Función que verifica si el número aleatorio es menor a 0.5 y devuelve el backend1 y en caso contrario, devuelve backend2.
    • disableCache: verdadero
    • cacheURLs: 0
      }

¿Cómo puedo hacer para que al actualizar se pueda cambiar su ruta de destino?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puede usar la opción disableCache en replyOptions para asegurarse de que la función getUpstream sea llamada en cada solicitud. Esto le permitirá generar un nuevo número aleatorio cada vez y direccionar a un backend diferente.

    server.register(require('fastify-http-proxy'), {
      upstream: '',
      replyOptions: {
        getUpstream: (originalReq, base) => {
          if (Math.random() < 0.5) {
            console.log(`estableciendo base para el backend1`)
            return `http://localhost:${backend1Port}`
          } else {
            console.log(`estableciendo base para el backend2`)
            return `http://localhost:${backend2Port}`
          }
        },
        disableCache: true,
        cacheURLs: 0,
      },
    })
    

Comments are closed.