Как установить тайм-аут в Spring Cloud Gateway? - PullRequest
0 голосов
/ 07 августа 2020

Как установить time-out в spring cloud gateway?

routeLocatorBuilder.routes()
        .route("test-api", r -> r.path("/api/**")).uri(apiLb))
        .route("test-doc", r -> r.path("/doc/**")).uri(docLb));

Есть ли способ установить тайм-аут только для одного ROUTE - doc.

1 Ответ

0 голосов
/ 07 августа 2020

Ссылается с весны do c

Для установки global time-out

spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 1000
        response-timeout: 5s

Таймауты на маршруте: -

  - id: per_route_timeouts
    uri: https://example.org
    predicates:
      - name: Path
        args:
          pattern: /delay/{timeout}
    metadata:
      response-timeout: 200
      connect-timeout: 200

In Java:

import static org.springframework.cloud.gateway.support.RouteMetadataUtils.CONNECT_TIMEOUT_ATTR;
import static org.springframework.cloud.gateway.support.RouteMetadataUtils.RESPONSE_TIMEOUT_ATTR;

      @Bean
      public RouteLocator customRouteLocator(RouteLocatorBuilder routeBuilder){
         return routeBuilder.routes()
               .route("test1", r -> {
                  return r.host("*.somehost.org").and().path("/somepath")
                        .filters(f -> f.addRequestHeader("header1", "header-value-1"))
                        .uri("http://someuri")
                        .metadata(RESPONSE_TIMEOUT_ATTR, 200)
                        .metadata(CONNECT_TIMEOUT_ATTR, 200);
               })
               .build();
      }
...