领事注销'失败'服务

Dev*_*ewB 2 mesos mesosphere consul microservices consul-template

我有领事在Mesos上运行的Consul v0.5.2版本和服务上运行.服务从1台服务器转移到另一台服务器.

是否有办法取消注册处于"失败"状态的领事服务?我可以使用此卷曲获取处于失败状态的服务列表

curl http://localhost:8500/v1/health/state/critical
Run Code Online (Sandbox Code Playgroud)

我们看到的问题是在consul UI中的一段时间内我们有过时的数据并使整个UI无法使用

jan*_*isz 6

默认情况下,Consul不会取消注册不健康的服务,而是将其标记为关键.从Consul 0.7开始,有一个特殊选项(deregister_critical_service_after)可以让你定义不健康服务被解除后的时间

来自Consul 0.7 Changelog

自动服务取消注册:deregister_critical_service_after为运行状况检查添加了一个新的 超时字段,如果检查的关键时间超过超时,则会导致与该检查关联的服务取消注册.这对于清除应用程序本机注册的运行状况检查很有用,或者在其他服务可能并不总是完全关闭的情况下很有用.GH-679

如果你使用Marathon然后你可以考虑使用allegro/marathon-consul它会在它死亡时取消注册任务