Есть ли тайм-аут запроса по умолчанию в Spring Cloud Gateway?

В документации я действительно видел, как таймауты может быть реализовано с помощью Hystrix, но я просто хочу убедиться, что тайм-аут по умолчанию не реализован.


person r_hammer    schedule 21.02.2019    source источник


Ответы (1)


Теперь есть также глава о общие таймауты в документации. Можно установить глобальные тайм-ауты и тайм-ауты для каждого маршрута. Мне не удалось найти значения по умолчанию, но похоже, что тайм-аута по умолчанию вообще нет (HTTP-запрос выполнялся в течение нескольких минут, когда я не включил конфигурацию тайм-аута). В дополнение к тайм-аутам Spring-Cloud-Gateway все еще можно использовать тайм-ауты hystrix, как описано, например, в этом сообщении.

Глобальные таймауты:

spring:
  cloud:
    gateway:
      httpclient:
        connect-timeout: 1000
        response-timeout: 5000

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

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

Таймауты на маршруте с Java DSL:

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();
  }
person maxeh    schedule 30.09.2020
comment
Для меня это не работает stackoverflow.com/questions/64935162/, вы можете помочь? - person Kuldeep; 22.11.2020