2017-02-12 16 views
3

У нас есть несколько приложений Spring Boot, которые регистрируются в Consul (через Spring Cloud Consul). Если я остановлю эти приложения через docker-compose stop myservice, тогда они де-регистровуют правильно и исчезнут из Консула.Удалить мертвые услуги из Consul

Если я использую docker-compose kill myservice, то дерегистрация не произойдет. Я понимаю, что в UNIX-системе невозможно поймать событие SIGKILL, поэтому нет возможности принудительно отменить регистрацию.

То, что мы видим, это услуги в Консуле, которые никогда не удалялись (помечены как critical, но все еще видны в пользовательском интерфейсе). Есть ли способ заставить Консула обновить зарегистрированное, чтобы мертвые службы были удалены?

Благодаря

Ник

+0

Возможный дубликат [Consul deregister «failing» services] (https://stackoverflow.com/questions/40010594/consul-deregister-failing-services) – janisz

ответ

0

кажется, что вы должны использовать Консул HTTP API и вручную дерегистрировать недоступны услуги. API дает 2 разные способы дерегистрировать некоторые услуги, первый через agent endpoint как так

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

, а второй через catalog. К сожалению, в обоих случаях вам нужно сделать http-запрос вручную.

 Смежные вопросы

  • Нет связанных вопросов^_^