IT заметки по программированию
IT заметки по программированию
IT заметки по программированию
IT заметки по программированию

Как etcd watch отслеживает удаление сервиса из реестра Service Discovery?

В etcd, механизм watch отслеживает изменения в реестре данных, включая как добавление, так и удаление данных. Когда вы используете watch с префиксом или конкретным ключом, etcd будет уведомлять вас не только о добавлении (PUT) или изменении значений, но и об удалении (DELETE) данных.

Как watch отслеживает удаление данных?

Когда сервис удаляется из реестра, например, с помощью команды Delete, etcd генерирует событие типа DELETE. Это событие включает информацию о ключе, который был удален.

Таким образом, если вы используете watch для отслеживания ключей, например, services/, то если какой-либо сервис удаляется из etcd, вы получите уведомление о событии DELETE с указанием ключа удаленного сервиса.

Пример работы с удалением данных с использованием watch:

Предположим, что мы зарегистрировали сервис с ключом services/service1, а затем этот сервис был удален из реестра. Мы можем отследить это с помощью watch, который уведомит нас о событии DELETE.

Пример кода, который отслеживает удаление сервиса:

Объяснение:

  1. registerService — Регистрирует сервис в etcd с ключом services/service1 и значением localhost:8080.
  2. deleteService — Удаляет сервис из etcd с тем же ключом services/service1, что имитирует удаление сервиса.
  3. watchServices — Использует watch для мониторинга изменений в префиксе services/. Когда сервис регистрируется (событие PUT), мы выводим сообщение о добавлении. Когда сервис удаляется (событие DELETE), выводится сообщение о его удалении.

Как это работает:

  • Когда сервис регистрируется, etcd генерирует событие PUT, и вы видите, что сервис добавлен.
  • Когда сервис удаляется из etcd с помощью Delete, etcd генерирует событие DELETE, и вы видите сообщение, что сервис был удален.

Вывод:

Важные моменты:

  • Если вы хотите отслеживать только удаление, вы можете просто обработать событие типа DELETE.
  • watch поддерживает отслеживание изменений с префиксом, что полезно для мониторинга всех сервисов, зарегистрированных под ключами с одинаковым префиксом, как в примере с services/.

Таким образом, использование watch позволяет не только отслеживать добавление или изменение сервисов, но и своевременно реагировать на их удаление из реестра.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *