【问题标题】:Is it possible to configure global timeout for all request in spring cloud gateway是否可以为spring cloud gateway中的所有请求配置全局超时
【发布时间】:2019-05-20 19:05:11
【问题描述】:

我正在尝试为我的 api 网关中的所有请求添加全局超时。下面是我的路由 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();
    }
}

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

【问题讨论】:

    标签: spring timeout hystrix spring-cloud-gateway


    【解决方案1】:

    我找到了答案。我将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
    

    【讨论】:

    • 但是,我从网关得到的超时响应是空的。我无法添加自定义消息以响应超时。对此的任何帮助将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2023-03-11
    • 2021-09-23
    • 2021-06-29
    • 1970-01-01
    • 2013-01-09
    • 2020-11-27
    相关资源
    最近更新 更多