Comment enregistrer eureka-clients avec eureka-serveur sur des hôtes différents. Spring-boot

Je fais tourner mon eureka-serveur sur mon localhost. Je suis en mesure d'enregistrer tous mes autres sur localhost services en cours d'exécution et tout fonctionne comme prévu.

Maintenant je veux m'inscrire à un service, qui est en cours d'exécution sur une machine linux. Mon propriétés ressemble à ça:

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/

Mais le service n'est pas en mesure de s'inscrire sur eureka serveur sur l'hôte local. (À la fin de son le même service qui s'exécute sur localhost)

- Je obtenir ces exceptions:

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

Mais je suis en mesure d'obtenir mes fichiers de configuration de ma config-service en cours d'exécution sur l'hôte local.

Les configurations que dois-je enregistrer mon service à eureka de machine linux(client) à localhost(serveur)?

Ce annotations dois-je utiliser:

Service:

@SpringBootApplication
@EnableDiscoveryClient
@EnableEurekaClient
public class MyServiceApplication {

Eureka-Serveur:

@SpringBootApplication
@EnableEurekaServer
public class EurekaServiceApplication {

P. S.:Aussi la face façon ne fonctionne pas. Ayant des moyens eureka serveur sur la machine linux et les services sur localhost. Obtenir les mêmes exceptions.

Edit1:

Eureka-propriétés du Serveur:

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 est la machine 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:

Dépendances:

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
  • shouldnt url eureka se termine par /découverte/eureka?
  • dans la plupart des post j'ai lu qu'il était sans /la découverte, Mais a obtenu le même résultat à l'aide de /la découverte. Toutes les autres suggestions?
  • Êtes-vous réellement la liaison de la eurake serveur à l'adresse IP correcte? Peut-être que c'est seulement lié à localhost au lieu de toutes les adresses ip. Pouvez-vous accéder à l'URL de anymachine autres alors votre machine locale...
  • Je suis en mesure d'obtenir la configuration de mon serveur de configuration de linux à localhost. Si cela fonctionne. Je suis également en mesure de faire une http appel à http://172.25.82.108:8761/ et obtenir le eureka tableau de bord. Et je pense aussi qu'il y a juste un server-config pour localhost. Mais c'est exactement le problème que j'ai. Ajouté mon serveur propriétés.
  • config et eureka sont 2 séparés des services de sorte que le fait que vous pouvez accéder à l'un, vous ne pouvez pas accéder à l'autre. Avez-vous essayé d'utiliser l'IP au lieu du nom d'hôte de votre machine pour la connexion. Aussi lorsque vous essayez http://172.25.82.108:8761/ si c'est à partir de la même machine qui a l'adresse IP que vous n'êtes pas tester quoi que ce soit. pour le eureka.instance.hostname essayer le nom d'hôte (au lieu de l'adresse ip).
  • Essayé avec l'IP mais a obtenu le même résultat. J'ai fait un wget de la machine linux vers le tableau de bord d'eureka en cours d'exécution sur mon localhost. C'était ok. J'ai aussi essayé avec avec le nom d'hôte du eureka.instance.hostname mais a obtenu le même résultat. Ajout de plus de l'exception de trace.
  • eureka.instance.preferIpAddress: true eureka.instance.ip-address: 172.25.82.108 eureka.client.serviceUrl.defaultZone: http://{eureka server ip}:{eureka server port}/eureka/ Peut-être que vous essayez ceci?
  • sur le client ou le serveur?
  • sur le client
  • vous devez également donner des adresse ip et le port eureka serveur. J'ai volontairement laissé non affecté.
  • désolé, ne fonctionne pas. Avez-vous d'autres suggestions. Ou pouvez-vous donner un plein de fichier de configuration pour le serveur et le client?
  • Ce à propos de la version de spring cloud utilisez-vous?
  • mise à jour de question
  • Je pense qu'il s'agit de la version clash. Je vous suggère de demander à partir de gitter.im/printemps-cloud/printemps-cloud ou question ouverte dans github.

InformationsquelleAutor Patrick | 2016-08-31