Обнаружение службы
Когда мы работаем с микросервисной архитектурой, вполне возможно, что у нас есть несколько служб на нескольких серверах или даже на нескольких серверах данных. Хотя конечный пользователь может не заботиться о местонахождении какой-либо из этих служб, наше приложение очень заинтересовано в деталях подключения для каждой службы. Эта проблема решена с помощью Service Discovery
.
1. Что такое служба обнаружения?
Как мы уже упоминали, когда службы распространяются, ими становится трудно управлять. Трудно отследить, где находится каждый сервис и какая информация необходима для подключения к каждому сервису. Обнаружение служб - это именно то, на что это похоже, процесс обнаружения всех наших служб и способы их подключения.
Этот процесс отслеживания нескольких служб решается с использованием Service Registry
. Каждая служба регистрируется в Реестре услуг при создании, и Реестр услуг отвечает за обработку и поддержание информации, необходимой для подключения к каждой услуге.
...
Поскольку микросервисы могут время от времени выходить из строя, важно подумать о том, как эта ситуация обрабатывается в Реестре сервисов. Как правило, реестр служб связан со слоем балансировки нагрузки (упоминавшимся в предыдущем разделе), который легко переключается при обнаружении того, что экземпляр больше не существует. Поэтому, если экземпляр службы должен был выйти из строя, реестр служб не смог бы вернуть необходимую информацию, и балансировщик нагрузки включился бы для ее обработки, одновременно кэшируя поиск в реестре служб.