我们目前正在使用 Spring Boot Admin 来监控 OpenShift 集群内的微服务。Spring Boot Admin 应用程序使用spring-cloud-starter-kubernetes依赖 项
从 Openshift 的服务发现中获取有关服务的信息。
在我们使用自定义server.servlet.context-path部署应用程序之前,一切都很好。
例如,我们的微服务有server.servlet.context-path=/dictionary。但是,Spring Boot Admin 从 OpenShift 的发现中获得以下信息:
{
"registration": {
"name": "dictionary-service",
"managementUrl": "http://10.130.1.169:8080/actuator",
"healthUrl": "http://10.130.1.169:8080/actuator/health",
"serviceUrl": "http://10.130.1.169:8080/",
"source": "discovery",
"metadata": {
"app": "dictionary-service",
...
}
}
}
因此,Spring Boot Admin 期望执行器正在运行,"http://10.130.1.169:8080/actuator"
但它实际上正在运行"http://10.130.1.169:8080/dictionary/actuator"
我们如何自定义managementUrl和healthUrl以便我们的 Spring Boot 管理服务器可以使用正确的 URL 来监视此服务?