Configuración de la puerta de enlace SpringCloud
Existen dos formas de configurar preferencias y filtros: abreviada y expansión totalmente parametrizada.
Fórmula: nombre=nombre, expresión regular, por ejemplo
Si configura el archivo yaml estándar, generalmente hay dos claves nombre y argumentos, args es el valor clave de la configuración del grupo predicado o filtro Mapeo derecho. Como se muestra a continuación:
Cada ruta se juzga en función de diferentes atributos de la solicitud HTTP.
**
El valor es una expresión regular
El valor es una expresión regular
Cada host utiliza el formato estilo Ant. separados por .
Los parámetros incluyen Spring PathMatcherpatterns y un delimitador matchOptionalTrailingSeparator opcional.
Las reglas anteriores pueden coincidir con rutas como /red/1/red/blue/blue/green.
Las variables de plantilla (como segmentos) en el URI se extraen y almacenan como pares clave-valor en ServerWebExchange.getAttributes() con la clave ServerWebExchangeUtils.URI_TEMPLATE_VARIABLES_ATTRIBUTE. Estos valores se pueden obtener mediante la fábrica GatewayFilter. Existe un método de utilidad para obtener estos valores de manera más conveniente. Como se muestra a continuación
El valor es una expresión regular
formateada como una anotación CIDR, como 192.168.0.1/16, donde 192.168.0.1 es la IP y 16 es la máscara de subred. .
Configura dos parámetros: grupo y peso (valor).
La configuración anterior enviará solicitudes de 80 a Weighthigh.org y 20 a Weightlow.org.
Para agregar parámetros en encabezados de solicitud, puede usar variables URI
Para agregar parámetros en consultas, puede usar variables URI
Para agregar parámetros en encabezados de respuesta Parámetros, puede usar variables URI
Eliminar parámetros de encabezado de respuesta duplicados
La configuración anterior eliminará los valores duplicados de los parámetros Access-Control-Allow-Credentials y Access-Control-Allow-Origin.
Puede establecer el valor de la política para modificar la política de eliminación predeterminada, que por defecto es RETAIN_FIRST, lo que significa mantener la primera. Otras estrategias incluyen RETAIN_LAST, RETAIN_UNIQUE.
Enrutamiento de interrupción ligero
Los nombres de los parámetros en los encabezados se pueden reemplazar, por ejemplo, Blue:abc se reemplazará con X-Request-Red:abc
Agregar un prefijo, por ejemplo, /hola, se enviará a /miruta/hola.
RequestRateLimiter GatewayFilter Factory
Al implementar la interfaz RateLimiter para configurar reglas de limitación de tráfico, puede usar el parámetro keyResolver para establecer una clave de limitación de tráfico específica. El valor predeterminado ahora es PrincipalNameKeyResolver, que. se utiliza en ServerWebExchange llamado Principal.getName().
Si la clave está vacía después del análisis, la solicitud será rechazada. Puede personalizar la política configurando los siguientes parámetros
spring.cloud.gateway.filter.request-rate-limiter.deny-empty-key (true o false) spring.cloud.gateway.filter.request - rate-limiter.deny-empty-key-status-code
Límite de flujo de Redis, utilizando el algoritmo de depósito de tokens.
redis-rate-limiter.replenishRate ¿Cuántas solicitudes hay por segundo y con qué frecuencia ingresa el token al depósito?
redis-rate-limiter.burstSolicitud de pico de capacidad.
redis-rate-limiter.requestsTokens La cantidad de tokens consumidos para cada solicitud, el valor predeterminado es 1.
Si desea mantener una frecuencia de solicitudes estable, puede establecer replenishRate y burstCapacity en el mismo valor; si tiene una gran cantidad de solicitudes de ráfaga, debe configurar burstCapacity para que sea mayor que replenishRate.
Si desea establecer 1 solicitud por minuto, puede lograrlo a través de la siguiente configuración
replenishRate=1
requestTokens=60
burstCapacity=60
También puedes implementar tu propio RateLimiter y KeyResolver
Configurar el estado de los parámetros y la URL
Eliminar los parámetros del encabezado de solicitud especificados
Eliminar los parámetros del encabezado de respuesta especificados
Eliminar los parámetros de solicitud
Reescribir la ruta
La configuración anterior cambiará /red/blue a /blue p >
/rojo/azul se cambiará a /azul
Reemplazar el valor del parámetro del encabezado de solicitud
Reemplazar el valor del parámetro del encabezado de respuesta
Establecer código de estado
Ambas configuraciones anteriores establecerán el código de estado en 401
Eliminar el prefijo
La configuración anterior cambiará /name/blue/red a nameservice/red .
Referencia
https://cloud.spring.io/spring-cloud-gateway/reference/html/#the-path-route-predicate-factory