1 背景描述
近期遇到一个和Eureka相关的,非常棘手的问题.从服务日志来看,没有任何问题.但尤其奇怪的是,会出现服务突然注册不上eureka的情况.而对于前端而言,必须通过zuul才可以访问到后端服务.一旦服务在Eureka上没有注册成功或者突然down掉了,那么前端调用就会失败.
本文记录探索过程,希望可以给大家一些参考.
Springboot版本: 1.5.3.Release
Springcloud版本: Dalston.SR1
1.1 Eureka显示为down(1)
如图所示
1.2 health状态为UP
如图所示
1.3 在线文档也可正常访问
如图所示
1.4 依然发送心跳
2 相关措施
2.1 更改服务的健康检测方式
2.1.1 操作步骤
将eureka健康检查由一般的心跳检查,更改为actuator的health方式,具体分为两步:
- 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 增加配置
eureka.client.healthcheck.enabled=true
2.1.2 操作结果
并没有达到效果,通过/health与/eureka/apps/查到的状态依旧不一致.原因未知…待续