在测试项目时发现consul服务端显示测试客户端的健康检查的接口调用失败,返回404:
在客户端也显示:
[org.springframework.web.servlet.PageNotFound:1176] - No mapping found for HTTP request with URI [/consul-test/health] in DispatcherServlet with name 'dispatcherServlet'
配置是正确的:
spring.profiles.active=dev server.port=8113 server.context-path=/consul-test spring.application.name=consul-test spring.profiles.include=common #consule相关配置 spring.cloud.consul.host=10.195.123.12 spring.cloud.consul.port=8068 spring.cloud.consul.discovery.preferIpAddress=true spring.cloud.consul.discovery.ip-address=10.195.123.25 spring.cloud.consul.discovery.health-check-path=${server.context-path}/health spring.cloud.consul.discovery.health-check-interval=15s spring.cloud.consul.discovery.instance-id=${spring.application.name}-${spring.cloud.consul.discovery.ip-address}-${server.port}
监看该检查使用的接口是: http://10.195.123.25:8113/consul-test/health。接口访问失败。
最后法相是缺少actuator的jar包。
<!-- 注册中心consul,按需使用 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-discovery</artifactId> </dependency> <!-- actuator健康检查--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>