如何解决API 网关能否动态查找在服务注册中心注册的微服务的 URI?
我正在使用 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();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。