在Consul日常維護中,由於Consul不會自動將不可用的服務實例注銷掉和移除node節點.
在實際使用過程中,可能因為一些操作失誤、環境變更等原因讓Consul中存在一些無效實例信息,而這些實例在Consul中會長期存在,並處於斷開狀態。
它們雖然不會影響到正常的服務消費過程,但是它們會干擾我們的監控,所以我們可以實現一個清理接口,在確認故障實例可以清理的時候進行調用來將這些無效信息清理掉。
Consul移除失效服務
解決辦法:調用deregister接口
方法:
PUT /agent/service/deregister/:service_id
eg:
在該consul agent服務器上可使用127.0.0.1,如果不在則使用該agent服務器ip
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:
在該consul agent節點服務器上可使用127.0.0.1,如果不在則使用該node節點服務器ip
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