2017-02-12 8 views
3

우리는 (영사관을 통해 스프링 클라우드 영사를 통해) 등록한 여러 가지 스프링 부트 응용 프로그램을 보유하고 있습니다. docker-compose stop myservice을 통해 해당 신청서를 중지하면 본인이 정확하게 등록을 취소하고 영사관에서 사라집니다.영사에서 사망 한 서비스 삭제

docker-compose kill myservice을 사용하면 등록 취소가 발생하지 않습니다. UNIX 시스템에서는 SIGKILL 이벤트를 포착하는 것이 불가능하므로 강제 등록 취소 방법이 없다는 것을 알고 있습니다.

따라서 우리는 결코 제거되지 않는 영사 서비스 (critical로 표시되었지만 여전히 UI에서 볼 수 있음)를 봅니다. 영사가 등록 된 것을 새로 고쳐 강제로 죽은 서비스를 제거 할 수있는 방법이 있습니까?

감사

+0

[Consul의 '실패한'서비스 등록 취소] 가능한 복제본 (https://stackoverflow.com/questions/40010594/consul-deregister-failing-services) – janisz

답변

0

당신이 영사 HTTP API를 사용하여 수동으로 사용할 수없는 서비스를 등록 해제 할 것을 보인다. API는 당신에게 어떤 서비스를 등록 해제하는 2 가지 방법, 그래서

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

같은 agent endpoint를 통해 첫 번째와 catalog를 통해 두 번째를 제공합니다. 불행히도 두 경우 모두 수동으로 http-request를 만들어야합니다.