因此,我们使用Spring-Boot编写Java微服务,使用Consul进行服务发现和配置管理,并在Docker容器中运行。所有这些都在工作,但是当一个容器死亡或服务重新启动时,旧的service-id在Consul永远不会消失,并且永久服务在Consul UI中显示为“Failing”,尽管新容器已经注册并显示了所有绿色。Docker中的Consul和Spring Boot服务 - 未注销
我们没有使用心跳 - 但我无法找到关于心跳和健康检查对领事有什么区别的文档。
这里是我的bootstrp.yml
spring:
application:
name: my-service
cloud:
config:
enabled: false
consul:
host: ${discovery.host:localhost}
port: ${discovery.port:8500}
config:
watch:
wait-time: 30
delay: 10000
profile-separator: "-"
format: FILES
discovery:
prefer-ip-address: true
instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
还有其他设置,使心跳加快,但文件说一下这把更多的压力领事群集上。
有没有人设法让Consul和Spring Boot/Docker服务实际上自动取消注册?它实际上不会造成任何实际问题,但它使Consul UI非常无用,实际上可以监视up/down服务。
也许这一个帮助:http://stackoverflow.com/questions/32259323/consul-not-deregistering-zombie-services – gesellix