报错信息与配置:
报错信息:
yml文件:
pom.xml配置
原因一:
有些人报错的原因是开始做单体Eureka的时候并没有开启注册于发现功能,导致在进行集群配置的时候无法找到
fetch-registry: 检索服务选项,当设置为True(默认值)时,会进行服务检索,注册中心不负责检索服务。
register-with-eureka: 服务注册中心也会将自己作为客户端来尝试注册自己,为true(默认)时自动生效
eureka.client.serviceUrl.defaultZone是一个默认的注册中心地址。配置该选项后,可以在服务中心进行注册。
所以一般情况下,当我们设置服务为注册中心时,需要关闭eureka.client.fetch-registry与eureka.client.register-with-eureka,在做注册中心集群的时候,register-with-eureka必须打开,因为需要进行相互注册,不然副本无法可用。
原因二:
首先我们查看一下依赖树:
发现里面有很多重复的依赖。因为spring-cloud-starter-netflix-eureka-client集成了ribbon,有兴趣的人可以使用mvn dependency:tree分析一下 jar包引用关系,若需要单独使用ribbon可以排除掉Eureka的引用,所以我们在pom文件中导入的
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
<version>2.2.9.RELEASE</version>
</dependency>
依赖包反而鸡肋了,这也是我这里报错的原因
解决办法很简单:因为Eureka已经继承了ribbon,将我们自己添加的jar包去掉就行了,运行成功!