今天遇到一个问题:eureka客户端和服务端都正常启动,控制台也没有任何错误,并且客户端都可以正常访问,没有什么报错信息,但是无法注册到注册中心,再三检查也没发现配置有什么问题。
配置文件
# eureka server的配置
server:
port: 8000
eureka:
instance:
hostname: localhost
client:
fetchRegistry: false
registerWithEureka: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:
application:
name: eureka-service
# 客户端的配置
server:
port: 8001
spring:
application:
name: cloud-payment-service
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://localhost:8000/eureka
注册中心显示:No instances available。
仔细看启动日志,服务端有注册日志,但是客户端启动日志没有。
错误的Maven依赖
查了一些资料,发现一般都是启动阶段直接报错的,可以根据报错信息排查。
看到一篇文章:spring-cloud,eureka客户端注册没有任何响应 ,点进去瞄一眼,在结尾看到描述跟我的问题一样:我的提供者无法完成注册,日志没有任何注册相关的消息,也没有任何异常打印。
第一时间查看Maven依赖,发现问题所在。
正确的依赖是:spring-cloud-starter-netflix-eureka-client
,而不是 spring-cloud-netflix-eureka-client
。
正确启动
改完pom文件,reimport相关依赖,重新启动客户端,一切正常了。