Spring Cloud Consul 健康检查配置
Spring Cloud Consul health check configuration
我是 运行 作为 Docker 容器的 Spring 启动应用程序。到目前为止这工作正常,但在尝试使用 Spring Cloud Consul 时也让我有些头疼。它可以很好地从 Consul KVS 读取配置,但健康检查似乎有问题。
默认运行状况检查使用 docker 容器的主机名,例如 http://users-microservice/health。显然,当从 Consul 访问时,这不会解决。
没问题,documentation 提到您可以在 bootstrap.yml 文件中使用 healthCheckPath 来配置它。这就是我现在拥有的:
spring:
application:
name: users-microservice
cloud:
consul:
host: myserver.com
port: 8500
config:
prefix: API-CONFIG
profileSeparator: '__'
discovery:
tags: users-microservice
healthCheckPath: http://myserver.com:${server.port}/status
healthCheckInterval: 30s
不幸的是,这个变量的使用方式似乎与我预期的非常不同。这就是 Consul 试图达到的目标:
Get http://users:18090http//myserver.com:18090/status: dial tcp: unknown port tcp/18090http
我该如何解决这个问题?是否有一些我应该设置的未记录的配置参数?
使用spring.cloud.consul.discovery.healthCheckUrl=http://myserver.com:${server.port}/status
healthCheckPath
只改变路径,不改变主机和端口。
我是 运行 作为 Docker 容器的 Spring 启动应用程序。到目前为止这工作正常,但在尝试使用 Spring Cloud Consul 时也让我有些头疼。它可以很好地从 Consul KVS 读取配置,但健康检查似乎有问题。
默认运行状况检查使用 docker 容器的主机名,例如 http://users-microservice/health。显然,当从 Consul 访问时,这不会解决。
没问题,documentation 提到您可以在 bootstrap.yml 文件中使用 healthCheckPath 来配置它。这就是我现在拥有的:
spring:
application:
name: users-microservice
cloud:
consul:
host: myserver.com
port: 8500
config:
prefix: API-CONFIG
profileSeparator: '__'
discovery:
tags: users-microservice
healthCheckPath: http://myserver.com:${server.port}/status
healthCheckInterval: 30s
不幸的是,这个变量的使用方式似乎与我预期的非常不同。这就是 Consul 试图达到的目标:
Get http://users:18090http//myserver.com:18090/status: dial tcp: unknown port tcp/18090http
我该如何解决这个问题?是否有一些我应该设置的未记录的配置参数?
使用spring.cloud.consul.discovery.healthCheckUrl=http://myserver.com:${server.port}/status
healthCheckPath
只改变路径,不改变主机和端口。