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.

El balanceador de carga clásico de GCP vs el balanceador de carga moderno no funciona con WebSockets.

Estamos teniendo problemas para hacer que los websockets funcionen con un balanceador de carga en Google Cloud. Lo hemos reducido a una diferencia entre el balanceador de carga clásico (funciona bien) y el balanceador de carga Https con gestión avanzada de tráfico que está seleccionado por defecto pero marcado como una vista previa (no funciona).

Tenemos un grupo de instancias que definitivamente soporta websockets. Es decir, podemos conectarnos a ella a través de la dirección IP.

Configuramos un balanceador de carga y optamos por el que tiene gestión de tráfico. Eso funcionó bien para solicitudes normales, pero todas las solicitudes de WebSocket fallaron con un código 502. No seleccionamos http/2 (que está documentado como no funcionando para esto). Intentamos todo tipo de cosas para hacer que esto funcionara. Aunque se documenta que esto debería funcionar de manera predeterminada, claramente no lo hace.

bash
$ websocat wss://lb.tryformation.com/websocket/messages
websocat: WebSocketError: Recibido código de estado inesperado (502 Bad Gateway)
websocat: error corriendo

Como último recurso, configuré un balanceador de carga clásico con la misma configuración, mismo grupo de instancias, misma verificación de salud, mismo certificado, etc. Y esto funcionó en el primer intento.

Entonces, claramente, el nuevo estilo de balanceador de carga no funciona como se anuncia cuando se trata de websockets. La pregunta es: ¿por qué? ¿Es este un problema conocido o hay algo que debemos configurar para hacer que los websockets funcionen con eso?

Estamos bien usando el lb clásico ya que funciona. Pero me gustaría entender el problema.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás experimentando algunos problemas para hacer que los websockets funcionen con el Https Loadbalancer con gestión avanzada de tráfico en Google Cloud. Tienes un grupo de instancias que soporta websockets, pero cuando intentas conectarte a través del balanceador de carga, recibes un error 502 Bad Gateway.

    Entonces, configuraste un balanceador de carga clásico con la misma configuración, mismo grupo de instancias, misma comprobación de salud, mismo certificado, etc. y esto funcionó a la primera vez. Esto sugiere que el nuevo estilo de balanceador de carga no funciona como se anuncia cuando se trata de websockets.

    Es posible que este sea un problema conocido o que haya algo que debas configurar para que los websockets funcionen con el nuevo estilo de balanceador de carga. Recomendamos que te comuniques con el soporte de Google Cloud para obtener más información sobre este problema.

Comments are closed.