it-swarm.com.de

com.netflix.discovery.shared.transport.TransportException: Anforderung kann auf keinem bekannten Server ausgeführt werden

Ich bin sehr neu bei den Microservices und versuche, den Code über den folgenden Link auszuführen: https://dzone.com/articles/advanced-microservices-security-with-spring-and-oa . Wenn ich einfach den Code ausführe, wird der folgende Fehler angezeigt.

Was ist das Problem ?

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
    at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.Java:111) ~[eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.Java:134) ~[eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.Java:137) ~[eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.Java:77) ~[eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.Java:134) ~[eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.Java:1030) [eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.Java:944) [eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.DiscoveryClient.refreshRegistry(DiscoveryClient.Java:1468) [eureka-client-1.4.12.jar:1.4.12]
    at com.netflix.discovery.DiscoveryClient$CacheRefreshThread.run(DiscoveryClient.Java:1435) [eureka-client-1.4.12.jar:1.4.12]
    at Java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [na:1.8.0_144]
    at Java.util.concurrent.FutureTask.run(Unknown Source) [na:1.8.0_144]
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_144]
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_144]
    at Java.lang.Thread.run(Unknown Source) [na:1.8.0_144]

2017-09-09 18:53:11.909 ERROR 16268 --- [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient  : Request execution error

Ich habe nichts Besonderes auf dem System installiert. Bitte lassen Sie mich wissen, was ich installieren muss.

enter image description here

18
user5778069

Ich finde, ich muss diese beiden Anwendungen zu den application.properties hinzufügen, es kann funktionieren. Nur eine ist nicht genug.

eureka.client.register-with-eureka=false

eureka.client.fetch-registry=false
31
xuezhongyu01

Diese besondere Nachricht ist nur eine Warnung. Ihre Anwendung versucht, sich bei Eureka zu registrieren, aber Eureka antwortet nicht. Sie können entweder eine Instanz von Eureka starten oder die automatische Registrierung deaktivieren, indem Sie Ihrer application.yml Folgendes hinzufügen.

eureka:
  client:
    register-with-eureka: false
6
Faron

Sie müssen einen Eureka Registry Server erstellen, der ein weiterer Mikroservice ist. Die Hauptklasse einer SpringBoot-Anwendung sollte die @EnableEurekaServer-Annotation haben.

Dann müssen Sie in Ihrem Eureka-Client die URL des Registrierungsservers in appliation.yml wie folgt angeben:

spring:
  application:
    name: stock-service

server:
  port: 8083


eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:8084/eureka/
  instance:
    hostname: localhost

dabei sollte defaultzone den Wert Ihrer Eureka-Registry enthalten.

Sobald Sie alle diese Konfigurationen vorgenommen haben, müssen Sie den Eureka-Registrierungs-Microservice einrichten und können dann den Eureka-Client einrichten. Sobald Ihre Registrierung aktiv ist, tritt diese Ausnahme nicht mehr auf.

5
ashish kathait

Dies geschieht, weil versucht wird, eine Verbindung zu einem bekannten Server herzustellen. Um diesen Fehler zu beenden, ist ein bekannter Server ein Eureka-Server an Port 8761, dem Standardport. Sie müssen die application.properties folgendermaßen aktualisieren

server.port=8761

Um zu verhindern, dass sich eureka selbst registriert, fügen Sie dies zu den application.properties hinzu

eureka.client.register-with-eureka=false

Stellen Sie sicher, dass EurekaServer aktiviert ist, z. B. schreiben Sie mit Spring Boot Folgendes auf die Hauptklasse.

@EnableEurekaServer

Bitte entschuldigen Sie, dass ich eine Lösung mit der .properties-Datei zur Verfügung stelle, aber das ist, womit ich arbeite, aber .yml-Konfigurationen sollten nicht zu unterschiedlich sein.

5
stanlee

Stellen Sie sicher, dass Ihr Farbband-Client korrekt ist

package com.in28minutes.microservices.currencyconversionservice;

import org.springframework.cloud.netflix.ribbon.RibbonClient;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@FeignClient(name="curreenter code herency-exchange-service")
@RibbonClient(name="currency-exchange-service") 
public interface CurrencyExchangeServiceProxy { 
    @GetMapping("/currency-exchange/from/{from}/to/{to}")
    public CurrencyConversionBean retrieveExchangeValue
        (@PathVariable("from") String from, @PathVariable("to") String to); //mention correct pathvariables
}
0
shubham kumar