从领事中移除死亡服务

我们有许多
Spring Boot应用程序可以向Consul注册(通过Spring Cloud Consul).如果我通过docker-compose stop myservice停止这些应用程序,那么他们会正确地取消注册并从Consul中消失.

如果我使用docker-compose kill myservice,那么注销就不会发生.据我所知,在UNIX系统上无法捕获SIGKILL事件,因此无法强制取消注册.

我们因此看到的是Consul中从未删除的服务(标记为关键但在UI中仍然可见).有没有办法强制Consul刷新注册的内容,以便删除死服务?

谢谢

缺口

最佳答案 看来,您必须使用Consul HTTP API并手动取消注册不可用的服务. API为您提供了2种不同的方式来取消注册某些服务,第一种方式通过
agent endpoint就像这样

curl -v -X PUT http://%CONSUL_IP%:8500/v1/agent/service/deregister/<ServiceID>

不幸的是,在这两种情况下你都必须手动发出http请求.

点赞