Red de conocimiento informático - Problemas con los teléfonos móviles - Explore el mecanismo de reintento de la puerta de enlace de Zuul

Explore el mecanismo de reintento de la puerta de enlace de Zuul

1. Configuración predeterminada relacionada con Zuul springcloud (versión F)

Algunos libros dicen que ConnectTimeout y ReadTimeout en la configuración entran en vigor cuando el cliente HTTP usa HttpClient, y los parámetros se establecerán en HttpClient, pero durante mi use, los parámetros no solo son efectivos para HttpClient. No es sólo HttpClient lo que funciona.

De forma predeterminada, el tiempo de espera de la cinta es de 1 segundo, simulemos 2 segundos de actividad para hacer que el tiempo de espera de la cinta se agote.

Cuando MaxAutoRetries es mayor que 0, la llamada no cambiará.

Hasta ahora, esto significa que el reintento en el Experimento 1 no funciona.

De repente tengo la idea de que el mecanismo de reintento de la puerta de enlace no tendrá nada que ver con la cinta http subyacente. La cinta predeterminada es httpclient, así que si uso okhttp en su lugar, cambiaré la cinta subyacente a okhttp. y luego repita el experimento

Ribbon.MaxAutoRetries: 1

Al imprimir la pila de excepciones, puede encontrar pistas

La excepción nos ha dicho claramente el motivo :

El número de reintentos en el siguiente servidor excede el número máximo de reintentos. Es decir, el número de reintentos en el siguiente servidor ha excedido el número establecido de reintentos. El siguiente servidor ha excedido el número establecido de reintentos. El número de reintentos ha excedido el número establecido de reintentos. La cantidad de reintentos en el siguiente servidor excedió el máximo de 1 reintento, lo que significa que reintentamos una máquina. Entonces hacemos esto

Ribbon.MaxAutoRetries: 2

Zuul usa httpClient y admite reintentos

El reintento en la puerta de enlace de Zuul se escribe aquí primero, principalmente registra lo que encontrado al usarlo yo mismo. Bienvenido.

reintento de puerta de enlace zuul