2016-08-31 9 views
5

Używam mojego serwera eureka na moim localhost. Mogę zarejestrować wszystkie moje usługi lokalne na localhostach i wszystko działa zgodnie z oczekiwaniami.Jak zarejestrować klientów eureka z serwerem eureka na różnych hostach. Wiosna-boot

Teraz chcę zarejestrować usługę, która działa na komputerze z systemem Linux. Moje właściwości wyglądają następująco:

spring.application.name=myService-service 
spring.cloud.config.uri=http://myMachine.domain.lan:8888 
server.port=8002 
eureka.client.service-url.default-zone=http://myMachine.domain.lan:8761/eureka/ 

Usługa nie jest jednak w stanie zarejestrować się na serwerze eureka na localhost. (Pod koniec jego samego serwisu, który działa na localhost)

mogę dostać te wyjątki:

java.net.ConnectException: Connection refused 
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 

Ale jestem w stanie dostać swoje pliki konfiguracyjne z moim config-usługa działa na localhost.

Jakie konfiguracje muszę zarejestrować moją usługę na eureka z komputera typu linux (klient) na localhost (serwer)?

This adnotacje mogę użyć:

Usługa:

@SpringBootApplication 
@EnableDiscoveryClient 
@EnableEurekaClient 
public class MyServiceApplication { 

Eureka-Serwer:

@SpringBootApplication 
@EnableEurekaServer 
public class EurekaServiceApplication { 

P.S.:Also sposób opposit nie działa. Oznacza posiadanie serwera eureka na maszynie Linux i usługach na localhost. Uzyskaj te same wyjątki.

Edit1:

właściwości Eureka-Server:

spring.application.name=eureka-service 
spring.cloud.config.uri=http://myMachine.domain.lan:8888 
server.port=8761 
eureka.client.register-with-eureka=false 
eureka.client.fetch-registry=false 
eureka.instance.hostname=KBHWS242.myDomain.lan 
eureka.instance.prefer-ip-address=true 

Edit2:

testsrv jest maszyna linux. (172.25.82.108)

2016-08-31 09:17:01.912 INFO 27105 --- [   main] com.netflix.discovery.DiscoveryClient : Starting heartbeat executor: renew interval is: 30 
2016-08-31 09:17:01.919 INFO 27105 --- [   main] c.n.discovery.InstanceInfoReplicator  : InstanceInfoReplicator onDemand update allowed rate per min is 4 
2016-08-31 09:17:01.923 INFO 27105 --- [   main] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1472627821923 with initial instances count: 0 
2016-08-31 09:17:02.068 INFO 27105 --- [   main] c.n.e.EurekaDiscoveryClientConfiguration : Registering application reservation-service with eureka with status UP 
2016-08-31 09:17:02.070 INFO 27105 --- [   main] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1472627822070, current=UP, previous=STARTING] 
2016-08-31 09:17:02.073 INFO 27105 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002: registering service... 
2016-08-31 09:17:02.173 ERROR 27105 --- [nfoReplicator-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error 

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused 

Caused by: java.net.ConnectException: Connection refused 


2016-08-31 09:17:02.174 WARN 27105 --- [nfoReplicator-0] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution failure 
2016-08-31 09:17:02.175 WARN 27105 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002 - registration failed Cannot execute request on any known server 

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 


2016-08-31 09:17:02.175 WARN 27105 --- [nfoReplicator-0] c.n.discovery.InstanceInfoReplicator  : There was a problem with the instance info replicator 

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 

2016-08-31 09:17:02.594 INFO 27105 --- [   main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8002 (http) 
2016-08-31 09:17:02.596 INFO 27105 --- [   main] c.n.e.EurekaDiscoveryClientConfiguration : Updating port to 8002 
2016-08-31 09:17:04.134 INFO 27105 --- [   main] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory 
2016-08-31 09:17:04.659 INFO 27105 --- [   main] a.e.ReservationServiceApplication  : Started ReservationServiceApplication in 44.893 seconds (JVM running for 47.272) 
2016-08-31 09:17:31.913 INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Disable delta property : false 
2016-08-31 09:17:31.914 INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null 
2016-08-31 09:17:31.914 INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false 
2016-08-31 09:17:31.914 INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Application is null : false 
2016-08-31 09:17:31.914 INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true 
2016-08-31 09:17:31.914 INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Application version is -1: true 
2016-08-31 09:17:31.914 INFO 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server 
2016-08-31 09:17:31.917 ERROR 27105 --- [freshExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error 

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused 

Caused by: java.net.ConnectException: Connection refused 

2016-08-31 09:17:31.917 WARN 27105 --- [freshExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution failure 
2016-08-31 09:17:31.918 ERROR 27105 --- [freshExecutor-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002 - was unable to refresh its cache! status = Cannot execute request on any known server 

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 

2016-08-31 09:17:31.924 ERROR 27105 --- [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error 

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused 

Caused by: java.net.ConnectException: Connection refused 

DiscoveryClient_RESERVATION-SERVICE/testsrv1.myDomain.lan:reservation-service:8002 - was unable to send heartbeat! 

Edit3:

zależności:

Maven: org.springframework.cloud:spring-cloud-commons:1.1.1.RELEASE 
Maven: org.springframework.cloud:spring-cloud-config-client:1.1.2.RELEASE 
Maven: org.springframework.cloud:spring-cloud-context:1.1.1.RELEASE 
Maven: org.springframework.cloud:spring-cloud-netflix-core:1.1.5.RELEASE 
Maven: org.springframework.cloud:spring-cloud-netflix-eureka-client:1.1.5.RELEASE 
Maven: org.springframework.cloud:spring-cloud-starter:1.1.1.RELEASE 
Maven: org.springframework.cloud:spring-cloud-starter-archaius:1.1.5.RELEASE 
Maven: org.springframework.cloud:spring-cloud-starter-config:1.1.3.RELEASE 
Maven: org.springframework.cloud:spring-cloud-starter-eureka:1.1.5.RELEASE 
Maven: org.springframework.cloud:spring-cloud-starter-ribbon:1.1.5.RELEASE 


Maven: org.springframework.cloud:spring-cloud-netflix-eureka-server:1.1.5.RELEASE 
+0

nie powinien być URL do eureka kończy się/odkrycie/eureka? – freakman

+0

@ freakman w najbardziej postu czytałem, że to było bez/odkrycie, ale otrzymałem ten sam rezultat za pomocą/discovery. Jakieś inne sugestie? – Patrick

+1

Czy rzeczywiście wiążą Państwo serwer eurake z prawidłowym adresem IP? Możliwe, że jest on związany tylko z 'localhost' zamiast z wszystkimi ips. Czy rzeczywiście możesz uzyskać dostęp do tego adresu URL z anymachine innego niż lokalny komputer ... –

Odpowiedz

0

Po zmianie .properties do .yml plik jednego z moich usług i poprawione ortograficzny w defaultZone wszystko działa tak jak oczekiwano.

Powiązane problemy