Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 在随机端口上运行微服务时,Eureka无法找到端口_Spring Boot_Spring Cloud_Netflix Eureka_Spring Cloud Netflix_Netflix Ribbon - Fatal编程技术网

Spring boot 在随机端口上运行微服务时,Eureka无法找到端口

Spring boot 在随机端口上运行微服务时,Eureka无法找到端口,spring-boot,spring-cloud,netflix-eureka,spring-cloud-netflix,netflix-ribbon,Spring Boot,Spring Cloud,Netflix Eureka,Spring Cloud Netflix,Netflix Ribbon,我正在使用eureka进行服务发现,并在spring boot应用程序中使用ribbon进行负载平衡。当我在固定端口上运行向eureka注册的micro服务时,它工作正常,但当我在随机端口上运行它们时,尽管我可以看到在eureka仪表板上注册的服务,但它无法找到端口号。当我尝试点击服务时,我得到了以下错误 2018-11-27 07:55:15.853 INFO 7240 --- [nio-8079-exec-1] c.n.l.DynamicServerListLoadBalancer

我正在使用eureka进行服务发现,并在spring boot应用程序中使用ribbon进行负载平衡。当我在固定端口上运行向eureka注册的micro服务时,它工作正常,但当我在随机端口上运行它们时,尽管我可以看到在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
我的服务已在eureka注册,名称为MYAPP。我还尝试了打印url,如您所见,它提供
http://nawnit:8080
在固定端口上运行时,但在随机端口上运行时,我得到
http://nawnit:0
(nawnit是我的电脑名)

这是我的eureka服务器配置属性。

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);
    }
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
eureka客户端的pom.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>

org.springframework.cloud
spring云依赖关系
格林威治立方米
聚甲醛
进口
org.springframework.cloud
spring cloud starter netflix eureka客户端
org.springframework.cloud
春云起动带
1.4.6.1发布

注意:我使用的restTemplate配置为负载平衡。

这是一个错误,已经修复。有关重新创建问题的测试,请参阅。这里也进行了修复


这将于下周(2018年12月6日)作为Greenwich.RC1的一部分提供。请参阅以获取更新。

从ribbon starter中删除该版本,并将其更改为
spring cloud starter netflix ribbon
,然后重试。我会尝试。但ribbon与eureka有任何关系吗?因为如果你看到print语句,它使用doscoverycinet来获取url,我想它独立于ribbon,对吧?这是一个bug。关注进展。@Spencergib谢谢。只是出于好奇你是怎么知道它是个虫子的?我的意思是,你是如何确定它是一个bug的?我不怀疑你,我只是想知道。创建了一个项目,它像你的一样失败了,改为Finchley.SR2有效,所以我知道这是一个回归。现在我们有一个测试来检查它。所以一旦它被发布,那么只有我才能拥有更新的代码?如果我克隆了存储库,它会工作吗?我想它有你的更改?你可以这样做,但我们也将快照部署到repo.spring。io@NawnitSen与此同时,坚持使用spring cloud starter netflix eureka客户端2.0。2@MartinSchröder除了boot2.1不起作用之外。x@spencergibb这就是我回到SpringBoot2.0.x的原因
    <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>