在我的spring boot应用程序中,我使用eureka进行服务发现,使用ribbon进行负载平衡。当我在固定端口上运行我的注册到eureka的微服务时,它工作正常,但当我在随机端口上运行它们时,虽然我可以看到在eureka仪表板上注册的服务,但它无法找到端口号。当我尝试点击服务时,我得到了下面的错误。
2018-11-27 07:55:15.853 INFO 7240 --- [nio-8079-exec-1] c.n.l.DynamicServerListLoadBalancer : DynamicServerListLoadBalancer for client MYAPP initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=MYAPP,current list of Servers=[nawnit:0, nawnit:0],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone; Instance count:2; Active connections count: 0; Circuit breaker tripped count: 0; Active connections per server: 0.0;]
},Server stats: [[Server:nawnit:0; Zone:defaultZone; Total Requests:0; Successive connection failure:0; Total blackout seconds:0; Last connection made:Thu Jan 01 05:30:00 IST 1970; First connection made: Thu Jan 01 05:30:00 IST 1970; Active Connections:0; total failure count in last (1000) msecs:0; average resp time:0.0; 90 percentile resp time:0.0; 95 percentile resp time:0.0; min resp time:0.0; max resp time:0.0; stddev resp time:0.0]
]}ServerList:org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList@563d5f30
2018-11-27 07:55:15.907 ERROR 7240 --- [nio-8079-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://MYAPP/validation/1": connect: Address is invalid on local machine, or port is not valid on remote machine; nested exception is java.net.ConnectException: connect: Address is invalid on local machine, or port is not valid on remote machine] with root cause
java.net.ConnectException: connect: Address is invalid on local machine, or port is not valid on remote machine
at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[na:1.8.0_181]
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) ~[na:1.8.0_181]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_181]
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_181]
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_181]
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_181]
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_181]
at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_181]
at java.net.Socket.connect(Socket.java:538) ~[na:1.8.0_181]
at sun.net.NetworkClient.doConnect(NetworkClient.java:180) ~[na:1.8.0_181]
at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[na:1.8.0_181]
at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[na:1.8.0_181]
at sun.net.www.http.HttpClient.<init>(HttpClient.java:242) ~[na:1.8.0_181]
at sun.net.www.http.HttpClient.New(HttpClient.java:339) ~[na:1.8.0_181]
at sun.net.www.http.HttpClient.New(HttpClient.java:357) ~[na:1.8.0_181]
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1220) ~[na:1.8.0_181]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156) ~[na:1.8.0_181]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050) ~[na:1.8.0_181]
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:984) ~[na:1.8.0_181]
at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) ~[spring-web-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.spr
这是我的控制器类,我从其中调用另一个服务。
public ResponseEntity<BaseResponse> verifyEmail(@RequestBody CustomerIdentity identity,
@PathVariable Integer simID) throws HttpClientErrorException {
System.out.println(this.discoveryClient.getInstances("MYAPP").get(0).getUri().toString());
return restTemplate.postForEntity("http://MYAPP"+ "/validation/" + simID, identity, BaseResponse.class);
}
这是我添加的属性
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
我的服务是在名为MYAPP的eureka注册的。我也尝试过打印您可以看到的url,它给出<代码>http://nawnit:8080在固定端口上运行,但在随机端口上运行时,我得到http://nawnit:0
(nawnit是我的电脑名)
这是我的eureka服务器配置属性。
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
logging.level.com.netflix.eureka=OFF
logging.level.com.netflix.discovery=OFF
pom公司。eureka客户端的xml:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.M3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
注意:我使用的restTemplate配置为负载平衡。
这是一个错误,已经修复。请参阅https://github.com/spring-cloud/spring-cloud-netflix/issues/3294重新创建该问题的测试。此处也进行了修复https://github.com/spring-cloud/spring-cloud-commons/issues/451
这将于下周(2018年12月6日)作为Greenwich.RC1的一部分提供。请参阅https://github.com/spring-cloud/spring-cloud-release/milestones更新。
我对docker,Spring框架的一切都很陌生…它们成功地在localhost环境中运行,现在我想把它们推送到docker中,但是总是给我错误,我在那里卡住了大约一周。有人能帮我弄清楚吗!!! 现在我有 eureka 服务器和云配置服务器服务,这是我的代码: 尤里卡服务器应用程序.yml 和 Dockerfile: 现在我有云配置服务器应用程序.yml:在这个文件中,我试图在github上备份它
我的微服务的application.yml(客户端到Eureka) Eureka的application.yml 我在端口8762启动Eureka并在我的微服务中引用它。微服务未能在尤里卡注册。以下是微服务日志的例外情况。 现在最重要的是,如果我把Eureka服务器端口和微服务的Eureka注册端口改成8761的话,一切都很好!!!!微服务的注册正在进行。 在发布问题之前多次这样做,它的行为是这样
我正在使用spring、spring boot、eureka(用于服务发现)和ribbon开发一个微服务应用程序。 我的应用程序由三个服务组成:客户端、服务器和eureka服务器 客户端和服务器都在eureka服务器上注册,之后客户端使用eureka服务发现调用服务器。 我可以在本地运行应用程序,一切都很好。 但是当部署在aws上时,事情就会失控。 接下来的步骤 同一安全组中有三个ec2实例 每个
我想为service registry和erueka客户机设置Eureka服务器,这些客户机将使用service registry从Eureka服务器访问rest api。但是我们使用mesos作为我们的容器管理系统,当我们启动Eureka服务器时,我们将不知道它运行在哪个主机和端口上。因此,我们可以使用一个api,它提供了Eureka服务器将运行的完整url。现在,我看到的Eureka客户端的所
pom.xml 主应用程序类 Application.Properties eureka客户端设置 pom.xml Application.Properties 我在eureka-server仪表板(http://localhost:8761)中没有看到向Eureka server注册的micro-service-currency-exchange-service 为什么eureka客户端没有注册