6

我在 Consul v0.5.2 版本上运行 consul,在 Mesos 中运行服务。服务不断从一台服务器移动到另一台服务器。

有没有办法在领事中注销处于“失败”状态的服务?我可以使用此 curl 获取处于失败状态的服务列表

curl http://localhost:8500/v1/health/state/critical

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

4

2 回答 2

10

默认情况下,Consul 不会取消注册不健康的服务,而是将它们标记为关键。从 Consul 0.7 开始,有一个特殊选项 ( deregister_critical_service_after) 允许您定义取消不健康服务后的时间

来自 Consul 0.7 更新日志

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

如果您正在使用 Marathon,那么您可以考虑使用allegro/marathon-consul它会在任务死亡时取消注册

于 2016-10-13T13:36:08.330 回答
0

除了 janisz 所说的,您还可以在 Nomad 中运行您的服务,Nomad 会自动为您注册和注销您的服务。有关更多详细信息,请参阅Nomad 服务发现文档。

于 2016-12-22T07:56:22.523 回答