Spring Cloud Gateway:如何添加要在多个组中使用的过滤器组

时间:2018-03-14 06:58:19

标签: spring cloud gateway

使用Spring云网关构建新的API网关。目前经历挑战。

Q1:负责管理将多个过滤器组合在一起以形成过滤器链并将过滤器链添加到路径的功能。这样可以避免每个Route复制/粘贴多个过滤器。

Q2:照明将过滤器链组应用于同一路线中的​​多个URI。

Q3:是否可以在Spring云网关中进行路由链接和条件路由链接

问题4:如何在Spring云网关中进行多个服务响应的编排/聚合。

1 个答案:

答案 0 :(得分:1)

我不确定以下内容是否能解答您的所有问题,但肯定会回答一些问题。

@Bean
public RouteLocator routes(RouteLocatorBuilder routeBuilder) {
    return routeBuilder.routes()
            .route("my_route",
                    route -> route
                            .path("/context/my-resources/**")
                            .filters(f -> f
                                    .rewritePath("/context/my-resources/of-some-type/(?<RID>.*)", "/my-resources-of-type-one/${RID}")
                                    .rewritePath("/context/my-resources/of-some-other-type/(?<RID>.*)", "/my-resources-of-type-two/${RID}")
                                    .hystrix(config -> config.setName("fallback name")))
                            .uri("http://localhost:8091")
            )
            .build();
}

在此示例中,链接了3个过滤器:第一个和第二个过滤器将URL和转发路径变量映射到下游URL,而第三个过滤器定义了回退策略。