Я новичок в микросервисах. Я пытаюсь создать одно небольшое приложение для обучения. Вот мой код: 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>
Где я ошибаюсь?




Я думаю, вам придется изменить Зону по умолчанию в свойстве клиента с / EurekaServer на / эврика
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8080/eureka
«/ eureka» - это остальная конечная точка для регистрации служб в реестре eureka. Внесите изменения и попробуйте, должно работать.
В дополнение к этому, если вы хотите изменить URL-адрес панели управления пользовательским интерфейсом, вы должны использовать свойство eureka.dashboard.path.
Мне пришлось использовать строку ниже в EmployeeClient application.yml
defaultZone: http://localhost:8080/EurekaServer/eureka
Добавление eureka.instance.hostname=localhost может решить вашу проблему, если вы добавили DiscoveryServer в качестве имени приложения в файл свойств приложения сервера.
Вы можете проверить мой ответ ниже.
Я уже добавил это свойство, но получал указанную выше ошибку!
да, ваш ответ был наполовину правильным, это дало мне представление. Я ответил ниже. +1 за ваш ответ. Спасибо дружище.