【发布时间】:2019-02-11 07:04:04
【问题描述】:
跟着@987654321@搭建了eureka server、spring cloud gateway和一个示例rest service。
但是,网关无法使用来自 eureka 服务器的服务名称检索 url。 网关和服务的注册似乎没问题。 当提供实际端点而不是服务 ID 时,它可以正常工作。 我无法理解为什么网关没有从尤里卡解析服务 ID。我是否缺少任何配置?
错误信息:
2018-09-05 23:20:17.751 INFO 47037 --- [ctor-http-nio-2] c.netflix.loadbalancer.BaseLoadBalancer : Client: localhost instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=localhost,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
2018-09-05 23:20:17.756 INFO 47037 --- [ctor-http-nio-2] c.n.l.DynamicServerListLoadBalancer : Using serverListUpdater PollingServerListUpdater
2018-09-05 23:20:17.760 INFO 47037 --- [ctor-http-nio-2] c.n.l.DynamicServerListLoadBalancer : DynamicServerListLoadBalancer for client localhost initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=localhost,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList@107dc063
2018-09-05 23:20:17.822 ERROR 47037 --- [ctor-http-nio-2] .a.w.r.e.DefaultErrorWebExceptionHandler : Failed to handle request [GET http://localhost:8080/rest-service/hello]
org.springframework.cloud.gateway.support.NotFoundException: Unable to find instance for localhost
at org.springframework.cloud.gateway.filter.LoadBalancerClientFilter.filter(LoadBalancerClientFilter.java:72) ~[spring-cloud-gateway-core-2.0.1.RELEASE.jar:2.0.1.RELEASE]
at org.springframework.cloud.gateway.handler.FilteringWebHandler$GatewayFilterAdapter.filter(FilteringWebHandler.java:133) ~[spring-cloud-gateway-core-2.0.1.RELEASE.jar:2.0.1.RELEASE]
at org.springframework.cloud.gateway.filter.OrderedGatewayFilter.filter(OrderedGatewayFilter.java:44) ~[spring-cloud-gateway-core-2.0.1.RELEASE.jar:2.0.1.RELEASE]
at org.springframework.cloud.gateway.handler.FilteringWebHandler$DefaultGatewayFilterChain.lambda$filter$0(FilteringWebHandler.java:115) ~[spring-cloud-gateway-core-2.0.1.RELEASE.jar:2.0.1.RELEASE]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:45) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE]
附上代码链接:
【问题讨论】:
-
您找到解决方案了吗?遇到类似问题
-
@roberttrudel 该问题已通过在网关代码中添加属性
spring.cloud.gateway.discovery.locator.lower-case-service-id= true得到解决
标签: spring-boot spring-cloud netflix-eureka spring-cloud-gateway