![](/img/trans.png)
[英]how to deregister the service in consul when using spring cloud consul
[英]Unable to deregister service(Spring boot app) from consul
无法从 Consul 注销服务。 基本上 Consul 官方页面说它会自动取消注册服务,但在我的情况下它不会像所说的那样工作。
https://www.consul.io/docs/agent/basics.html
嗨,提到领事生命周期,它说
为了防止死节点(处于失败或离开状态的节点)的积累,Consul 会自动将死节点从目录中删除。 这个过程称为收割。 目前这是在 72 小时的可配置间隔内完成的(不建议更改收获间隔,因为它会在中断情况下产生后果)。 Reaping 类似于离开,导致所有相关服务被注销。
这是我的 bootstrap.yml 文件
server:
port: 8089
spring:
application:
name: ***-service
cloud:
consul:
host: consul-ui
port: 8500
discovery:
deregister: true
instance-id: ${spring.application.name}:${random.value}
enabled: true
register: true
health-check-interval: 20s
prefer-ip-address: true
config:
enabled: true
prefix: configuration
defaultContext: shared
format: YAML
data-key: data
watch:
enabled: true
endpoints:
shutdown:
enabled: true
使用清除命令删除服务后,在 Consul UI 中,仍然显示在 Consul UI 上。 所以意味着它没有被领事注销
您需要在 Consul 上进行配置,因为您的应用程序似乎无法正常退出。 检查领事配置属性deregister_critical_service_after
:
在 Consul 0.7 及更高版本中,与服务相关联的检查还可能包含可选的
deregister_critical_service_after
字段,它是与interval
和ttl
具有相同 Go 时间格式的超时。 如果检查处于临界状态的时间超过此配置值,则其关联的服务(及其所有关联的检查)将自动取消注册。 最小超时时间为1分钟,收割关键服务的进程每30秒运行一次,因此触发注销的时间可能比配置的超时时间稍长。 这通常应该配置一个超时,该超时比给定服务的任何预期可恢复中断要长得多。
该文档是关于领事节点,而不是服务节点。
您究竟是如何终止应用程序的?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.