SpringCloud - Cannot execute request on any known server

微服务发现(eureka)采坑记录:报 Cannot execute request on any known server 这个错:连接Eureka服务端地址不对,有以下几种处理方式。

 

一、更改.yml文件或者.properties文件配置即可

#下划线+下划线后面的小写字母等同于去掉下划线大写下划线后面的字母(驼峰原则)

eureka.client.registerWithEureka=false   #是否要注册到其他Server上   registerWithEureka等同于register_with_eureka
eureka.client.fetchRegistry=false        #是否需要拉取服务信息       fetchRegistry等同于 fetch-registry

 

二、连接Eureka服务端URL不对

如果访问地址是:http://127.0.0.1:8761/eureka/

则在Eureka服务发现应该配置为:

server.port: 8761

eureka.client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

 

三、注销依赖以及清空下载的Eureka依赖包

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   <version>2.1.1.RELEASE</version>
</dependency>

 

补充

有些项目工程入口文件为什么不用加@EnableEurekaClient注解,服务就可以直接注册到服务中心?

答:这个问题和具体的版本有关。在早期的(D版之前,包含 D 版)Spring Cloud 中,我们使用 @EnableEurekaClient 或者 @EnableDiscoveryClient ,但实际上,在前者中使用了后者,所以这两者已经没有什么区别了。 不过在新版中,只要我们引用了以 spring-cloud-starter-netflix 为前缀的库,服务发现就自动开启了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章