【发布时间】:2018-12-24 09:55:34
【问题描述】:
我是微服务新手。我正在尝试创建一个用于学习目的的小型应用程序。这是我的代码: 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://localhost:8080/EurekaServer 看到仪表板
EmployeeClient:application.yml 如下:
spring:
application:
name: EmployeeClient
server:
port: 8586
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8080/EurekaServer
在最后一行中,我需要明确编写 serviceUrl,因为在 sts 中按 ctrl+space 时它不显示选项 serviceUrl,但它显示 service-url,连字符号。与 defaultZone 相同。我是否缺少某些 jar 或特定版本?
我的 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>
我哪里出错了?
【问题讨论】:
标签: spring-boot microservices spring-cloud netflix-eureka