首页 > 解决方案 > Spring Cloud Gateway RouteLocator Java 代码无法获取特定路由 id

问题描述

我尝试使用 Java 代码在 Spring Cloud Gateway 中自定义 RouteLocator。我可以看到在端点 /actuator/gateway/routes 中注册的所有路由列表,但是当我试图获取给定 id 中的特定路由时,它是 404 /actuator/gateway/routes/auth-server。

这就是我试图调用 /actuator/gateway/routes

[
    {
        "route_id": "auth-server",
        "route_object": {
            "predicate": "org.springframework.cloud.gateway.support.ServerWebExchangeUtils$$Lambda$264/896945135@4e9d7b14"
        },
        "order": 0
    },
    {
        "route_id": "song",
        "route_object": {
            "predicate": "org.springframework.cloud.gateway.support.ServerWebExchangeUtils$$Lambda$264/896945135@7d49ff95"
        },
        "order": 0
    }
]

具有特定路由 /actuator/gateway/routes/auth-server 的那个

http://localhost:8080/actuator/gateway/routes/auth-server

我得到了结果状态码 404 not found

这是java自定义路由配置:

@Configuration
public class RouteConfiguration {


    @Bean
        RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder) {

        return routeLocatorBuilder.routes()
                .route("auth-server", predicateSpec -> predicateSpec.path("/uaa/**").uri("lb://auth-service"))
                .route("song", predicateSpec -> predicateSpec.path("/song/**").uri("lb/song-service"))
                .build();
    }

}

它应该与 auth-server 路由一起给出。

标签: springspring-cloud-gateway

解决方案


@soyphea 这是一个已知问题,但我在 GitHub 上找不到票。您能否为此创建一个错误报告以确保:https ://github.com/spring-cloud/spring-cloud-gateway/issues/new ?谢谢你的好问题!


推荐阅读