Исключение клиента Eureka com.netflix.discovery.shared.transport.TransportException: невозможно выполнить запрос на любом известном сервере

Я новичок в микросервисах. Я пытаюсь создать одно небольшое приложение для обучения. Вот мой код: EurekaServer - application.yml

    spring:
     application:
      name: EurekaServer

    server:
     port: 8080
     servlet:
      context-path: /EurekaServer

    eureka:
     client:
      fetch-registry: false
      register-with-eureka: false 

Eureka Server работает нормально, и я могу видеть панель управления по адресу http: // локальный: 8080 / EurekaServer

EmployeeClient: application.yml находится ниже:

    spring:
     application:
      name: EmployeeClient

    server:
     port: 8586

    eureka:
     client: 
      serviceUrl:
       defaultZone: http://localhost:8080/EurekaServer

В последней строке мне нужно явно написать serviceUrl, так как при нажатии ctrl + space в sts он не показывает параметр serviceUrl, но показывает URL-адрес службы, знак дефиса. То же самое и с defaultZone. Мне не хватает какой-то банки или конкретной версии?

Мой EmployeeClientApplication.java

    @EnableEurekaClient
    @SpringBootApplication
    public class EmployeeClientApplication {

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

когда я пытаюсь запустить EmployeeClientApplication.java, он дает мне исключение ниже:

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

Я также пробовал использовать @EnableDiscoveryClient вместо @EnableEurekaClient, но безуспешно.

Ниже приведена часть файла EmployeeClient pom.xml:

    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.0.3.RELEASE</version>
       <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
      <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>

   <dependencies>
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    <dependency>

Где я ошибаюсь?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
1
0
10 353
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я думаю, вам придется изменить Зону по умолчанию в свойстве клиента с / EurekaServer на / эврика

eureka:
     client: 
      serviceUrl:
       defaultZone: http://localhost:8080/eureka

«/ eureka» - это остальная конечная точка для регистрации служб в реестре eureka. Внесите изменения и попробуйте, должно работать.

В дополнение к этому, если вы хотите изменить URL-адрес панели управления пользовательским интерфейсом, вы должны использовать свойство eureka.dashboard.path.

да, ваш ответ был наполовину правильным, это дало мне представление. Я ответил ниже. +1 за ваш ответ. Спасибо дружище.

Abhi 17.07.2018 22:34
Ответ принят как подходящий

Мне пришлось использовать строку ниже в EmployeeClient application.yml

    defaultZone: http://localhost:8080/EurekaServer/eureka

Добавление eureka.instance.hostname=localhost может решить вашу проблему, если вы добавили DiscoveryServer в качестве имени приложения в файл свойств приложения сервера.

Вы можете проверить мой ответ ниже.

Abhi 14.12.2018 14:49

Я уже добавил это свойство, но получал указанную выше ошибку!

Gadhia Reema 18.12.2018 10:27

Другие вопросы по теме