2017-08-10 95 views
2

我得到了spring-boot應用程序,尤里卡服務器和尤里卡客戶端。使用spring雲更改尤里卡服務器的默認端口

這裏是我的服務器配置

server: 
    port: 8761 

spring: 
    application: 
    name: eureka-server 

這裏是我的服務器代碼

package fr.maif.eurekaserver; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; 
import org.springframework.cloud.netflix.zuul.EnableZuulProxy; 

@SpringBootApplication 
@EnableEurekaServer 
@EnableZuulProxy 
public class EurekaServerApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(EurekaServerApplication.class, args); 
    } 
} 

下面是客戶端配置

spring: 
    application: 
    name: eureka-client 
server: 
    port: 8083 
eureka: 
    client: 
    serviceUrl: 
     defaultZone: "http://localhost:8761/eureka" 

這裏是我的客戶端代碼

package fr.maif.eurekaclient; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 

@SpringBootApplication 
@EnableDiscoveryClient 
public class EurekaClientApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(EurekaClientApplication.class, args); 
    } 
} 

以上工作完美,而服務器端口仍然是8761,但是當我嘗試更改它(8080或任何其他值)在服務器端口&客戶端defaultZone配置,服務器不斷拋出ConnectExceptions。

2017-08-10 15:54:31.424 ERROR 22219 --- [get_localhost-4] c.n.e.cluster.ReplicationTaskProcessor : Network level connection to peer localhost; retrying after delay 

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused (Connection refused) 
    at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:187) ~[jersey-apache-client4-1.19.1.jar:1.19.1] 
    at com.netflix.eureka.cluster.DynamicGZIPContentEncodingFilter.handle(DynamicGZIPContentEncodingFilter.java:48) ~[eureka-core-1.6.2.jar:1.6.2] 
    at com.netflix.discovery.EurekaIdentityHeaderFilter.handle(EurekaIdentityHeaderFilter.java:27) ~[eureka-client-1.6.2.jar:1.6.2] 
    at com.sun.jersey.api.client.Client.handle(Client.java:652) ~[jersey-client-1.19.1.jar:1.19.1] 
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) ~[jersey-client-1.19.1.jar:1.19.1] 
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) ~[jersey-client-1.19.1.jar:1.19.1] 
    at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570) ~[jersey-client-1.19.1.jar:1.19.1] 
    at com.netflix.eureka.transport.JerseyReplicationClient.submitBatchUpdates(JerseyReplicationClient.java:116) ~[eureka-core-1.6.2.jar:1.6.2] 
    at com.netflix.eureka.cluster.ReplicationTaskProcessor.process(ReplicationTaskProcessor.java:71) ~[eureka-core-1.6.2.jar:1.6.2] 
    at com.netflix.eureka.util.batcher.TaskExecutors$BatchWorkerRunnable.run(TaskExecutors.java:187) [eureka-core-1.6.2.jar:1.6.2] 
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 
Caused by: java.net.ConnectException: Connection refused (Connection refused) 
    at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_131] 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_131] 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_131] 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_131] 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_131] 
    at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_131] 
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:118) ~[httpclient-4.5.3.jar:4.5.3] 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.3.jar:4.5.3] 
    at com.sun.jersey.client.apache4.ApacheHttpClient4Handler.handle(ApacheHttpClient4Handler.java:173) ~[jersey-apache-client4-1.19.1.jar:1.19.1] 
    ... 10 common frames omitted 

我該怎麼做?

+1

當您使用新端口中的瀏覽器訪問eureka時會發生什麼?例如。 localhost:8080/ – alayor

+0

您的評論幫助我解決了我的問題:我有eureka IHM,但只有尤里卡客戶端出現在註冊應用程序(而不是服務器)中。我在我的服務器配置中添加了'eureka.client.serviceUrl.defaultZone:「http:// localhost:8080/eureka」',它工作正常!非常感謝你 –

回答

2

嘗試此配置: 1.服務器。

server: 
    port: 8080 

eureka: 
    instance: 
    hostname: localhost 
client: 
    registerWithEureka: false 
    fetchRegistry: false 
    serviceUrl: 
    defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 

2.客戶端。

spring: 
    application: 
    name: eureka-client 
server: 
    port: 8083 
eureka: 
    client: 
    registerWithEureka: true 
    fetchRegistry: true 
    serviceUrl: 
    defaultZone: http://localhost:8080/eureka/ 
+0

是的,''eureka.client.serviceUrl.defaultZone'確實在服​​務器配置中丟失了,正如前面的評論所述。感謝您的幫助=) –

相關問題