繁体   English   中英

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();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM