在Consul日常维护中,由于Consul不会自动将不可用的服务实例注销掉和移除node节点.
在实际使用过程中,可能因为一些操作失误、环境变更等原因让Consul中存在一些无效实例信息,而这些实例在Consul中会长期存在,并处于断开状态。
它们虽然不会影响到正常的服务消费过程,但是它们会干扰我们的监控,所以我们可以实现一个清理接口,在确认故障实例可以清理的时候进行调用来将这些无效信息清理掉。
Consul移除失效服务
解决办法:调用deregister接口
方法:
PUT /agent/service/deregister/:service_id
eg:
curl -X PUT http://127.0.0.1:8500/v1/agent/service/deregister/my-service-id
出处:https://www.cnblogs.com/liucx/
Consul移除正常关机nodes节点
解决办法:调用force-leave接口
方法:
PUT /agent/force-leave/:node
eg:
curl -X PUT http://127.0.0.1:8500/v1/agent/force-leave/node1_192.168.100.105
参考官网:https://www.consul.io/api/agent/service.html