是否可以在Spring Cloud Gateway中为所有请求配置全局超时

时间:2018-12-20 09:19:42

标签: spring timeout hystrix spring-cloud-gateway

我正在尝试为我的api网关中的所有rquest添加全局超时。下面是我的路由bean:

@Configuration
public class DataserviceRoute {

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route("abc_service",
                        r -> r.path("/abc/**").uri("http://localhost:7010"))
                .route("def_service",
                        r -> r.path("/def/**").uri("http://localhost:8085"))
                .route("xyz_service",
                        r -> r.path("/xyz/**").uri("http://localhost:1800"))
                .build();
    }
}

如何为所有路由配置全局超时?

1 个答案:

答案 0 :(得分:0)

我找到了答案。我将bean配置如下:

@Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route(r -> r.path("/**")
                        .filters(f -> f.hystrix(config -> config.setName("appTimeout")))
                        .uri("http://localhost:8085")
                        .id("all_request"))
                .build();
    }

并在application.property文件中添加了一个属性:

hystrix.command.appTimeout.execution.isolation.thread.timeoutInMilliseconds: 30000