API 网关能否动态找到在服务注册中心注册的微服务的 URI?

Can an API Gateway find URIs of microservices registered on a Service Registry dynamically?

我正在使用 Spring Boot,并且我有一个 Eureka 服务器设置,其中注册了一些微服务以进行服务发现。 现在,我希望注册为 Eureka 客户端的 API 网关能够动态重定向到这些微服务,而不是对它们的 URI 进行硬编码。

类似这样,其中“AuthMicroservice”是已注册微服务的名称:

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route(p -> p
                    .path("/auth/asdh26627s8")
                        //.uri("http://localhost:8080/auth")
                        .uri("http://AuthMicroservice")
                )
                .build();
    }

当我尝试时,它告诉我有一个“java.net.UnknownHostException:在 2 个查询后无法解析 'AuthMicroservice'”。

所以我想知道这是否可能?如果是,我将如何处理?

找到解决方案。我所要做的就是将 URI 中的“http”替换为“lb”以启用负载平衡。

@Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route(p -> p

                    .path("/auth/asdh26627s8")
                        .uri("lb://AuthMicroservice/auth")
                )
                .build();
    }