Gan*_*alf 8 java docker spring-boot consul microservices
因此,我们使用Spring-Boot编写Java微服务,使用Consul进行服务发现和配置管理,并在Docker容器中运行.所有这一切都在工作,但是当容器死亡或服务重新启动时,即使新容器已注册并显示所有内容,在Consul UI中显示为"失败"之后,旧的service-id永远不会在Consul和服务中消失绿色.
我们没有使用心跳 - 但是我找不到很多关于心跳和健康检查之间的区别的文档.
这是我的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}}
Run Code Online (Sandbox Code Playgroud)
还有其他设置可以启用心跳,但是文档说明这一点会给Consul集群带来更多压力.
有没有人设法让Consul和Spring Boot/Docker服务实际上自动取消注册?它实际上不会导致任何实际问题,但它使得Consul UI实际上无法监视上/下服务.
Consul 不会自动取消注册服务。
有关同一问题的提示,请参阅https://groups.google.com/forum/#!topic/consul-tool/slV5xfWRpEE 。根据该线程,您需要更新配置或执行代理 API 调用。由于代理是事实来源,因此您不应尝试通过 Catalog API 进行更新。详情请参阅GitHub 。他们还在 Google 小组中提到,如果节点正常关闭,您不一定需要取消注册服务,但这似乎不是您的用例。
请查看Consul not deregistering Zombie services以获得有关使用 api 或registrator等工具自动取消服务注册的提示。
| 归档时间: |
|
| 查看次数: |
900 次 |
| 最近记录: |