微服务发现(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 为前缀的库,服务发现就自动开启了。