2016-07-11 11 views
3

Nach diesem Blog https://spring.io/blog/2015/07/14/microservices-with-springjava.net.UnknownHostException während Eureka Service Discovery

War in der Lage, die Anwendung ohne Probleme laufen. In dieser Reihenfolge:

  • java -jar Micro-Demo-0.0.1-SNAPSHOT.jar Anmeldung 1111
  • java -jar Micro-Demo-0.0.1-SNAPSHOT.jar Konten 2222
  • java - jar Micro-Demo-0.0.1-SNAPSHOT.jar web 3333

Aber wenn alle über das Web-Anwendung zu schlagen versuchen (http://localhost:3333/), die verwendet die http://ACCOUNTS-SERVICE url alle Konten Service-Endpunkte wie http://ACCOUNTS-SERVICE/accounts/123456789 zugreifen ich bin eine Fehlermeldung erhalten:

Response Status: 500 (Internal Server Error) 
Cause: org.springframework.web.client.ResourceAccessException I/O error on GET request for "http://ACCOUNTS-SERVICE/accounts/123456789": ACCOUNTS-SERVICE; nested exception is java.net.UnknownHostException: ACCOUNTS-SERVICE 

Als ich bieten die reale Adresse (http://localhost:2223/) der Konten Dienst an den Webserver statt der http://ACCOUNTS-SERVICE alles funktioniert, aber es gibt keinen Service Discovery in diesem Fall.

Der Quellcode bei gespeichert ist: https://github.com/paulc4/microservices-demo

Antwort

12

dieses Problem zu dem RestTemplate wurde wegen wurde nicht mehr automatisch erstellt in der Brixton Release-Zug (Frühling Wolke 1.1.0.RELEASE), so konnte die RestTemplate nicht Lösen Sie die URL http://ACCOUNTS-SERVICE ordnungsgemäß mithilfe des Dienstentdeckungsservers auf.

War in der Lage, dieses Problem zu beheben, nachdem eine RestTemplate Bohne mit @LoadBalanced erklärt sich wie folgt:

@Bean 
@LoadBalanced 
public RestTemplate restTemplate() { 
    return new RestTemplate(); 
} 
Verwandte Themen