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.

) Los eventos del lado del servidor en OpenShift se agotan (HTTP 504).

Tengo una aplicación Spring Boot que proporciona una API REST. Uno de los puntos finales es un flujo (Eventos del servidor):

@GetMapping(path = "/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
      public Flux<ServerSentEvent<?>> stream() {
      ...
    }

Localmente, esto funciona bien. Sin embargo, cuando lo implemento en un clúster OpenShift, siempre obtengo un error HTTP 504. Los otros puntos finales REST “normales” funcionan bien en OS.

¿Hay algo que deba considerar en la configuración de OpenShift? ¿Redes?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay algunas cosas que considerar al implementar una aplicación Spring Boot con un endpoint de Eventos del Lado del Servidor en OpenShift. Una posible causa del error HTTP 504 es un error de tiempo de espera debido a la configuración del router o balanceador de carga de OpenShift. Por defecto, el router de OpenShift tiene un tiempo de espera de 30 segundos para todas las solicitudes, incluidas las solicitudes de larga duración como Eventos del Lado del Servidor. Para aumentar este tiempo de espera, puede agregar anotaciones a la configuración del Servicio o Ruta:

    tipo: Ruta
    metadata:
      anotaciones:
        haproxy.router.openshift.io/timeout: "2m" # establecer tiempo de espera en 2 minutos
    

    Otra cosa a considerar es si el clúster de OpenShift tiene suficientes recursos para manejar el endpoint de transmisión. Los Eventos del Lado del Servidor pueden consumir potencialmente una gran cantidad de recursos, especialmente si muchos clientes están conectados y la transmisión está produciendo mensajes con frecuencia. Verifique los límites y el uso de recursos de las vainas de OpenShift que ejecutan la aplicación Spring Boot para descartar la agotamiento de recursos como causa del error HTTP 504.

    Finalmente, verifique si existen reglas de firewall o políticas de red que puedan estar bloqueando el endpoint de Eventos del Lado del Servidor en OpenShift. Algunas configuraciones de red pueden no permitir conexiones de larga duración o pueden requerir que se agreguen puertos o protocolos específicos a la lista blanca para el tráfico entrante y saliente. Puede utilizar las políticas de red de OpenShift para controlar el flujo de tráfico de red entre las vainas y servicios del clúster.

    En resumen, para diagnosticar y solucionar el error HTTP 504 al implementar una aplicación Spring Boot con un endpoint de Eventos del Lado del Servidor en OpenShift, debe verificar lo siguiente:

    • Configuración de tiempo de espera del router o balanceador de carga de OpenShift
    • Límites y uso de recursos de las vainas de OpenShift que ejecutan la aplicación Spring Boot
    • Políticas de red y reglas de firewall que pueden estar bloqueando el endpoint de Eventos del Lado del Servidor.

Comments are closed.