今天遇到一个问题:eureka客户端和服务端都正常启动,控制台也没有任何错误,并且客户端都可以正常访问,没有什么报错信息,但是无法注册到注册中心,再三检查也没发现配置有什么问题。


配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 客户端的配置
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相关依赖,重新启动客户端,一切正常了。