gpt4 book ai didi

docker - Eureka已注册了奇怪的IP地址,并且请求无法与zuul一起使用

转载 作者:行者123 更新时间:2023-12-02 19:06:49 25 4
gpt4 key购买 nike

我正在使用SpringBoot开发具有微服务架构的Rest Backend。我使用Eureka作为发现服务,使用Zuul作为API网关。在本地主机上工作时一切正常。但是,当我在云上部署服务时,zuul api网关的行为不符合预期。所有服务仍在eureka中注册。
请求到达api网关时不转发到所需的服务,而是停留在api网关上并给出

com.netflix.zuul.exception.ZuulException: Filter threw Exception
at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:227) ~[zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:157) ~[zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.FilterProcessor.route(FilterProcessor.java:118) ~[zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.ZuulRunner.route(ZuulRunner.java:96) ~[zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.http.ZuulServlet.route(ZuulServlet.java:116) ~[zuul-core-1.3.1.jar:1.3.1]
at com.netflix.zuul.http.ZuulServlet.service(ZuulServlet.java:81) ~[zuul-core-1.3.1.jar:1.3.1]
at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:165) [spring-webmvc-5.0.4.RELEASE.jar:5.0.4.RELEASE]
...
at com.netflix.hystrix.HystrixCommand.queue(HystrixCommand.java:378) ~[hystrix-core-1.5.12.jar:1.5.12]
at com.netflix.hystrix.HystrixCommand.execute(HystrixCommand.java:344) ~[hystrix-core-1.5.12.jar:1.5.12]
at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.forward(RibbonRoutingFilter.java:159)
... 96 common frames omitted
Caused by: java.lang.RuntimeException: java.net.UnknownHostException: 3b7b691a42eb: unknown error
at rx.exceptions.Exceptions.propagate(Exceptions.java:57) ~[rxjava-1.3.6.jar:1.3.6]
at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:463) ~[rxjava-1.3.6.jar:1.3.6]
at rx.observables.BlockingObservable.single(BlockingObservable.java:340) ~[rxjava-1.3.6.jar:1.3.6]
at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:112) ~[ribbon-loadbalancer-2.2.5.jar:2.2.5]
... 158 common frames omitted
Caused by: java.net.UnknownHostException: 3b7b691a42eb: unknown error
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_65]
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_65]
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_65]
at java.net.InetAddress.getAllByName0(InetAddress.java:1276) ~[na:1.8.0_65]
at java.net.InetAddress.getAllByName(InetAddress.java:1192) ~[na:1.8.0_65]
at java.net.InetAddress.getAllByName(InetAddress.java:1126) ~[na:1.8.0_65]
at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) ~[httpclient-4.5.5.jar:4.5.5]
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:112) ~[httpclient-4.5.5.jar:4.5.5]
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373) ~[httpclient-4.5.5.jar:4.5.5]
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381) ~[httpclient-4.5.5.jar:4.5.5]
...
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.6.jar:1.3.6]
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48) ~[rxjava-1.3.6.jar:1.3.6]
at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.3.6.jar:1.3.6]
at rx.Observable.subscribe(Observable.java:10352) ~[rxjava-1.3.6.jar:1.3.6]

这是我的zuul配置
zuul:
prefix: /api/v1
routes:
user-server:
path: /user/**
serviceId: USER-SERVER
developer-server:
path: /developer/**
serviceId: DEVELOPER-SERVER

spring:
application:
name: zuul-server

server:
port: 5000

eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone : http://{{eureka_hosted_ip}}:8070/eureka/


hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 2000000
ribbon:
ConnectTimeout: 200000
ReadTimeout: 200000

我已经在Docker容器中部署了服务。我究竟做错了什么 ?

最佳答案

我发现了错误。向Eureka Server注册时出现错误,我的服务未使用正确的IP地址注册。由于它在docker容器上运行,因此无法正确注册ip。
因此,在运行docker时,我必须在docker run命令中使用--network=host部分。当我在eureka上正确注册时,一切正常。

关于docker - Eureka已注册了奇怪的IP地址,并且请求无法与zuul一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49666398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com