Service discovery — это механизм, который позволяет сервисам в распределённой системе динамически находить друг друга и взаимодействовать — без необходимости использовать захардкодированные адреса. По мере того как сервисы масштабируются и перемещаются между нодами, service registry хранит актуальный список доступных инстансов.
Популярные инструменты реестра включают Consul, Eureka и Zookeeper.
В этом подходе сам клиент отвечает за поиск инстанса сервиса:
Преимущество: просто и даёт клиенту полный контроль над логикой маршрутизации. Недостаток: связывает клиента с механизмом discovery, увеличивая сложность клиента.
В этом подходе клиент делегирует ответственность за поиск промежуточному компоненту:
Преимущество: держит клиентов простыми и отделяет их от логики discovery. Недостаток: вводит дополнительный сетевой хоп и потенциальную единую точку отказа.
При client-side discovery клиент отвечает за запрос к реестру сервисов и выбор экземпляра сервиса, используя стратегию load balancing, перед тем как сделать прямой запрос.
Новый — ещё не проверен сообществом
Вы