最近在帮架构迁移和服务化,发现因为server.servlet.context-path SpringCloud会有健康检查全部DOWN和配置中心文件获取路径不对问题
配置中心:SpringConfigServer
注册中心:EurakeServer
配置中心获取文件路径问题
即使配置了context-path 从注册中心获取到服务后,获取配置文件路径依旧是 ip:port 没有相对应的context-path
解决方案
eureka:
instance:
metadata-map:
# 注册时候配置configPath
configPath: ${server.servlet.context-path}
健康检查地址
注册到Eurake上面默认健康检查地址是 /actuator/ 并不会有context-path,导致springAdmin监控发现服务是Down状态,但curl健康检查地址是up
eureka:
instance:
metadata-map:
management:
context-path: ${server.servlet.context-path}/actuator
需要注意的点
百度上面搜索到增加配置是
health-check-url-path: ${server.servlet.context-path}/actuator/health
status-page-url-path: ${server.servlet.context-path}/actuator/info
这个配置是可以生效,但是不能与上面的元数据重复,如果重复会导致健康检查的地址会多出context-path