初学Spring cloud的时候,启动Eureka的时候报了下面的错误:
com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
.....
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
到网上一查,原来是因为在默认设置下,Eureka服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为。
解决方法:
配置eureka server的配置文件appication.yml(我个人比较喜欢.yml的格式,注意一下,属性名称的“:”后面有一个英文格式的空格)
server: port: 9000 eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ spring: application: name: eurka-server
或者appication.properties
server.port=9000 spring.application.name=eureka-server eureka.instance.hostname=localhost eureka.server.enable-self-preservation=false eureka.client.register-with-eureka=false eureka.client.fetch-registry=false eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
通过eureka.client.registerWithEureka:false和fetchRegistry:false来表明自己是一个eureka server.
配置完成后重启服务就OK了!